<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<HTML>
  <HEAD>
    <TITLE>Ghidra Change History</TITLE>
    <style>

      .gcode {
        font-family: courier new;
        font-weight: bold;
        font-size: 85%;
      }

      .gtitle {
        font-style: italic;
        font-weight: bold;
        font-size: 95%;
      }

    </style>
  </HEAD>

<BODY>

<H1 align="center">Ghidra 11.2.1 Change History (November 2024)</H1>
<blockquote><p><u><B>New Features</B></u></p>
<ul>
    <li><I>Debugger:GDB</I>. Added GDB batch scripts for Windows.  Also, updated ssh+gdb scripts to take path to ssh as an option. (GP-4957, Issue #7069)</li>
</ul>
</blockquote>
<blockquote><p><u><B>Improvements</B></u></p>
<ul>
    <li><I>Analysis</I>. Updated RTTI Analyzer to fix incorrect PDB symbols in anonymous namespaces when the PDB does not have complete namespace information and RTTI structures do. (GP-5053, Issue #3213)</li>
    <li><I>Decompiler</I>. Added support for detecting optimized strings loaded from labeled memory. (GP-4979, Issue #6925, #6985)</li>
</ul>
</blockquote>
<blockquote><p><u><B>Bugs</B></u></p>
<ul>
    <li><I>Analysis</I>. Clearing of bad flow after a call that is found to be non-returning will no longer clear DLL Import table entries or defined data beyond <span class="gcode">Undefined&lt;n&gt;</span>. (GP-4696, Issue #6636)</li>
    <li><I>BSim</I>. Fixed the Elasticsearch <span class="gcode">lsh.zip</span> plug-in for the <span class="gcode">BSimElasticPlugin</span> extension. (GP-5043, Issue #7051, #7054)</li>
    <li><I>BSim</I>. Corrected <span class="gcode">synchronous_commit</span> setting for BSim postgresql database and eliminated some warnings in the postgresql logs.  We now ensure that all DB connections are closed properly when the Ghidra process exits normally to avoid unnecessary server logging of failed DB connection errors. (GP-5082, Issue #6951)</li>
    <li><I>DB</I>. Corrected issue closing <span class="gcode">FileDataTypeManager</span> affecting use of DataType Archives on Windows platforms which could produce an error during resource cleanup. (GP-5090)</li>
    <li><I>Debugger</I>. Fixed issue launching debuggers on Windows where the installation path contains spaces. (GP-5015, Issue #6999)</li>
    <li><I>Debugger:Emulator</I>. Fixed issue with stale disassembly in Emulator. (GP-4483)</li>
    <li><I>Debugger:Emulator</I>. Fixed Emulator to heed UI-driven patches to the program counter. (GP-4889, Issue #6867)</li>
    <li><I>Debugger:Trace</I>. Fixed bug in Listing with <span class="gtitle">Force Full View</span> enabled. (GP-2032)</li>
    <li><I>Decompiler</I>. Fixed a bug in the Decompiler causing <em>"Case block has become detached from switch"</em> exceptions. (GP-4899, Issue #6819)</li>
    <li><I>Decompiler</I>. Fixed bug that could cause an infinite loop in the Decompiler on functions accessing a 1-byte structure. (GP-4972, Issue #6969)</li>
    <li><I>Decompiler</I>. Fixed infinite loop in the Decompiler associated with overlapping fields in a structure. (GP-4985, Issue #6991)</li>
    <li><I>Emulator</I>. Fixed issue with slow stepping that occurred in the Emulator after an interrupt. (GP-4231, Issue #6109)</li>
    <li><I>Importer:Mach-O</I>. Fixed an exception that could occur in the MachoLoader when an External Program had a space in its name/path. (GP-4997, Issue #6989)</li>
    <li><I>Importer:PE</I>. Fixed an <em>exception</em> that could occur while parsing PE <span class="gcode">Control Flow Guard</span> structures, preventing the binary from successfully importing. (GP-5009, Issue #6960)</li>
    <li><I>Scripting</I>. Fixed a typo in <span class="gcode">VSCodeProjectScript.java</span> that resulted in the <span class="gcode">Extensions/Ghidra/Skeleton</span> directory not being found. (GP-4971, Issue #6971)</li>
    <li><I>Scripting</I>. Added vxworks external symbol markup, which was previously ignored. (GP-5000)</li>
</ul>
</blockquote>

<H1 align="center">Ghidra 11.2 Change History (September 2024)</H1>
<blockquote><p><u><B>New Features</B></u></p>
<ul>
    <li><I>Basic Infrastructure</I>. Ghidra now requires JDK 21 to run. (GP-4122)</li>
    <li><I>Build</I>. A Gradle wrapper script is now included at <span class="gcode">support/gradle/gradlew(.bat)</span> which can be used to perform all Gradle commands without the need for prior Gradle installation.  The Gradle wrapper requires an Internet connection to work.  Offline Gradle installations on the PATH continue to work the same way as before. (GP-4486, Issue #455)</li>
    <li><I>Debugger</I>. Provided new launchers/features for the traceRMI version of dbgeng, including extended launch options, kernel debugging, and remote process server connections. (GP-4686)</li>
    <li><I>Debugger</I>. The Debugger Python components now require Python 3.9 to Python 3.12. (GP-4842)</li>
    <li><I>Decompiler</I>. The Decompiler now supports the automatic recovery of <em>stack strings</em>. (GP-3307, Issue #1380, #2285, #6431, #6592)</li>
    <li><I>Decompiler</I>. Added a <span class="gtitle">Search All</span> button to the Decompiler <span class="gtitle">Find</span> dialog.  This button will show all results of the search in a table. (GP-3491, Issue #5317, #538)</li>
    <li><I>GUI</I>. Added <span class="gtitle">Create Table</span> action to the <span class="gtitle">Symbol Tree</span> and <span class="gtitle">Symbol Table</span> to create a new temporary table of symbols. (GP-4574)</li>
    <li><I>GUI</I>. Added a <span class="gtitle">Find Uses of</span> field action to the Enum Editor. (GP-4577, Issue #6475)</li>
    <li><I>GUI</I>. Added support for <span class="gcode">Ctrl-A</span> to select <em>all</em> in the Python window. (GP-4605, Issue #6502)</li>
    <li><I>Headless</I>. Added a JShell launcher with the full Ghidra classpath. (GP-4876)</li>
    <li><I>Processors</I>. Added Intel MC16/60 and MC16/80 processor specifications. (GP-4879)</li>
    <li><I>Scripting</I>. Added <span class="gcode">VSCodeProjectScript</span>, which can create a new Visual Studio Code project that is setup to do Ghidra scripting and module development, with similar capabilities to the Eclipse GhidraDev plugin. (GP-4795)</li>
    <li><I>Search</I>. Updated the Memory Search feature to show results in the query window and added two new features: (1) dynamic updating of results that change, stay the same, increment, or decrement; and (2) combining results from successive searches using boolean set operations. (GP-4559)</li>
</ul>
</blockquote>
<blockquote><p><u><B>Improvements</B></u></p>
<ul>
    <li><I>Analysis</I>. Refactored Sparc processor detection and mitigation of Call/Return behavior due to an instruction in the delay slot that changes the <span class="gcode">o7</span> link register.  Also fixed 64/32 relocations, sparc calling conventions, and added several missing instructions and hidden structure return pointer location. (GP-3808, Issue #5646, #6300)</li>
    <li><I>Analysis</I>. Added support for Golang 1.15 and 1.16.  Versions supported are now 1.15-1.22. (GP-4482)</li>
    <li><I>Analysis</I>. Added a new <span class="gcode">MIDIDataType</span> and audio player for embedded MIDI scores. (GP-4516, Issue #6337)</li>
    <li><I>Analysis</I>. Refactored eBPF analyzers and expanded on applied BPF Helper functions. (GP-4682)</li>
    <li><I>Analysis</I>. Updated the <span class="gcode">RTTIAnalyzer</span> to improve its determination of the end of virtual function tables. (GP-4748)</li>
    <li><I>BSim</I>. Added BSim database <span class="gcode">connect</span>/<span class="gcode">disconnect</span> actions to BSim Server Manager.  This will allow an idle connection to be disconnected without the need to exit Ghidra or removing a server entry, which, in the case of a local H2 database, will allow another process to use it. (GP-4867, Issue #6703)</li>
    <li><I>Byte Viewer</I>. Extended HexInteger to other integral data types. (GP-4709, Issue #6658, #6659)</li>
    <li><I>CodeCompare</I>. Added ability to add functions to the last function comparison window. (GP-4634)</li>
    <li><I>Data Types</I>. Added <span class="gtitle">Edit Data Type</span> action that allows users to edit a chosen data type from anywhere in the tool by using the <span class="gcode">Ctrl-Shift-D</span> keyboard shortcut. (GP-4148, Issue #5975, #6576)</li>
    <li><I>Data Types</I>. Added <span class="gtitle">Undo</span>/<span class="gtitle">Redo</span> popup menu actions for Archives within datatype tree. (GP-4719)</li>
    <li><I>Data Types</I>. Added <span class="gtitle">Undo</span>/<span class="gtitle">Redo</span> support to the structure and union datatype editors as well as other minor improvements. (GP-4740)</li>
    <li><I>Data Types</I>. Improved performance of various structure editor behaviors including setting the structure size. (GP-4949, Issue #6504, #6936)</li>
    <li><I>Debugger</I>. Provided more complete compiler matching using <span class="gcode">ldefs</span> language definition files. (GP-4675)</li>
    <li><I>Debugger:Agents</I>. Deprecated Framework-Debugging module and Model-based debug connectors, moving toward removal. (GP-4801)</li>
    <li><I>Debugger:Agents</I>. User may now use binary (0b prefix), octal (0 prefix), or hex (0x prefix) in integer-valued launcher option fields. (GP-4847)</li>
    <li><I>Debugger:Registers</I>. Changed how <span class="gtitle">Go To [address]</span> actions are presented with regard to <span class="gtitle">Force Full View</span>. (GP-3898, Issue #5817)</li>
    <li><I>Decompiler</I>. Added <span class="gtitle">Go To Next/Previous Highlight</span> actions to allow navigating Decompiler middle-mouse highlights. (GP-3494, Issue #538)</li>
    <li><I>Decompiler</I>. Improved Function Editor to facilitate partial changes which limit impact to Decompiler results (e.g., only change calling convention) and avoid locking full function signature. (GP-4324)</li>
    <li><I>Decompiler</I>. Improved multi-threaded decompilation performance and possibly disassembly by removing some unnecessary locking. (GP-4712, Issue #6649, #6650)</li>
    <li><I>Decompiler</I>. Provided initial support for recovering optimized heap strings in the Decompiler. (GP-4733)</li>
    <li><I>Decompiler</I>. The Decompiler now forces casting to a signed value when converting integers to floating-point. (GP-4871, Issue #6760)</li>
    <li><I>Demangler</I>. Added support for GNU Demangler output simplification. (GP-3810, Issue #5725)</li>
    <li><I>Demangler</I>. Improved Microsoft Demangler to include handling of <span class="gcode">noexcept</span> attributes and certain type name suffixes. (GP-4626)</li>
    <li><I>Demangler</I>. Modified MDMang: added calling conventions and custom data type; added end, empty parameter, and unnamed template types; modified reference modifiers and guard name processing; fixed empty member pointer qualification; and worked around LLVM embedded object issue. (GP-4663)</li>
    <li><I>Demangler</I>. Changed application of MDMang <span class="gcode">`anonymous namespace'</span> strings to their underlying anonymous name to avoid namespace conflicts. (GP-4717, Issue #6661)</li>
    <li><I>Demangler</I>. Added <span class="gcode">char8_t</span> primitive type to DemangledDataType. (GP-4823)</li>
    <li><I>Demangler</I>. Updated the GNU Demangler to support global constructors and destructors. (GP-4825, Issue #6791)</li>
    <li><I>Documentation</I>. Added discussions of program specification extensions and instruction length modification to the advanced Ghidra class slides, along with miscellaneous clarifications and improvements. (GP-3774, Issue #5667, #5702)</li>
    <li><I>DWARF</I>. Added DWARF analyzer option to ignore parameter storage location info and to use calling convention default layout instead.  Also added DWARF analyzer option to specify the calling convention name for functions created by the analyzer. (GP-4150)</li>
    <li><I>Eclipse Integration</I>. The latest Eclipse GhidraDev plugin (4.0.0) now requires Eclipse 2023-12 or later running under JDK 21 or later. (GP-4846)</li>
    <li><I>Function Compare</I>. Added actions to compare functions from the Listing, Decompiler, and Functions Table. (GP-4619)</li>
    <li><I>GUI</I>. Updated the Listing and Byte Viewer title bars to show the number of addresses or bytes selected while dragging. (GP-1359, Issue #2482)</li>
    <li><I>GUI</I>. Added <span class="gtitle">Show Namespace</span> action to the Function Call Trees to display the function's namespace in each node. (GP-3251, Issue #5115)</li>
    <li><I>GUI</I>. Add <span class="gtitle">Filter Thunks</span> action to the Function Call Trees to hide think functions. (GP-3252, Issue #5116)</li>
    <li><I>GUI</I>. Added the <span class="gtitle">Simplified Name</span> column to the Symbol Table. (GP-3377, Issue #6125)</li>
    <li><I>GUI</I>. Added the ability to Snapshot the Symbol Tree. (GP-3849)</li>
    <li><I>GUI</I>. Added the structure member comment to the Decompiler tooltip window. (GP-4661)</li>
    <li><I>GUI</I>. Added single option in the Front End Tool to control whether or not cursors blink in any field panel or text component. (GP-4676, Issue #6570)</li>
    <li><I>GUI</I>. The <span class="gtitle">Edit Data Type</span> action in the Decompiler will now select the structure field row when launching the editor. (GP-4728, Issue #5717)</li>
    <li><I>GUI</I>. New Listing fields and <span class="gcode">Copy Special</span> actions have been added for imagebase offset, memory block offset, and function offset (disabled by default). (GP-4855, Issue #6794)</li>
    <li><I>Headless</I>. Improved handling of headless command-line arguments when the optional list of arguments passed to a pre/post script contain arguments that start with a dash. (GP-4707, Issue #6639)</li>
    <li><I>Importer</I>. Added a new <span class="gtitle">Add Library Search Path</span> action to files and folders in the File System Browser that will allow library files to be loaded from within a GFileSystem. (GP-4563)</li>
    <li><I>Importer</I>. Added a new <span class="gcode">-librarySearchPaths</span> command line argument to the headless analyzer, which allows a semicolon-delimited list of library search paths to be specified. (GP-4564)</li>
    <li><I>Importer</I>. OMF records are now marked up. (GP-4722)</li>
    <li><I>Importer:ELF</I>. Improved ELF handling of unresolved symbols during relocation-processing to prevent import failure. (GP-4737, Issue #6673)</li>
    <li><I>Multi-User</I>. Upgraded <span class="gcode">yajsw</span> to 13.12. (GP-4860)</li>
    <li><I>PDB</I>. Changed the PDB symbol server search config dialog to allow marking symbol servers as trusted/untrusted instead of using the symbol server's connection type. (GP-4735)</li>
    <li><I>PDB</I>. Improved PDB class namespaces determination and standardized some naming between PDB and MDMang. (GP-4773)</li>
    <li><I>PDB</I>. Added <span class="gcode">char8_t</span> primitive type to PDB Universal analyzer. (GP-4822)</li>
    <li><I>PDB</I>. Modified PDB MSDIA interpretation of malformed datatype fields with no underlying datatype. (GP-4827, Issue #6744)</li>
    <li><I>Processors</I>. Fixed several PPC EVX instructions that were not affecting the destination register as a return value assigned from a pseudoOp call. (GP-4702)</li>
    <li><I>Processors</I>. Added PSPEC label description tag and <span class="gcode">addr="next"</span> which allows for a large number of contiguous labels placed at an address based on the previous label without specifying the exact address of each label. (GP-4742)</li>
    <li><I>Processors</I>. Processor specs now accept the <span class="gcode">volatile</span> attribute in <register> tags. (GP-4849, Issue #6755)</li>
    <li><I>ProgramTree</I>. Updated the Program Tree default double-click behavior.  Double-clicking now navigates instead of replacing the view.  This can be changed in the tool options. (GP-4691)</li>
    <li><I>Scripting</I>. GhidraScripts can now declare an <span class="gcode">@runtime</span> metadata comment to specify which GhidraScriptProvider is required to run them (e.g., <span class="gcode">Jython</span>).  This will allow different GhidraScriptProviders that use the same script file extension (e.g., <span class="gcode">.py</span>) to coexist. (GP-4706)</li>
    <li><I>Scripting</I>. Improved <span class="gcode">RecoverClassesFromRTTIScript</span> heuristics for determining class constructors and destructors. (GP-4764)</li>
    <li><I>Scripting</I>. Changed <span class="gcode">RecoverClassesFromRTTIScript</span> virtual function definitions from using the formal signature (i.e., no <span class="gcode">this</span> param) to using <span class="gcode">void *this</span> param. This will improve the Decompiler output while continuing to not force a particular class structure on the generic definition's <span class="gcode">this</span> param. (GP-4812)</li>
    <li><I>Scripting</I>. <span class="gcode">RecoverClassesFromRTTIScript</span> now caches <span class="gcode">vfunction</span> list in order to speed up processing. (GP-4863, Issue #6834)</li>
    <li><I>Scripting</I>. Fixed a recursion issue in RecoverClassesFromRTTIScript. (GP-4865, Issue #6832, #6833)</li>
    <li><I>Scripting</I>. Changed PasteCopiedListingBytesScript to handle hexdump format and listing bytes field split to multiple lines. (GP-4928)</li>
    <li><I>Terminal</I>. Added <span class="gtitle">Select All</span> action to <span class="gtitle">Terminal</span> window. (GP-4631, Issue #6502)</li>
    <li><I>Version Tracking</I>. The Version Tracking Matches table now has table column filters and now allows users to delete matches from the table (although this is not recommended). (GP-4410, Issue #6066, #6281)</li>
</ul>
</blockquote>
<blockquote><p><u><B>Bugs</B></u></p>
<ul>
    <li><I>Basic Infrastructure</I>. Fixed a ClassSearcher exception that could occur when launching Ghidra in <span class="gcode">single jar mode</span>. (GP-4844, Issue #6809)</li>
    <li><I>Data Types</I>. Corrected concurrency exception related to use of <span class="gcode">EnumDataType.getNames()</span> method. (GP-4797, Issue #6765)</li>
    <li><I>Data Types</I>. Fixed <span class="gcode">StructureDB.delete(Set ordinals)</span> and  <span class="gcode">UnionDB.delete(Set ordinals)</span> method implementations which failed to properly remove component records from database and update remaining components correctly. This method is used by the Structure and Union editors when removing components. (GP-4814)</li>
    <li><I>Data Types</I>. Fixed issue in the Data Type Chooser dialog that caused inconsistent auto-complete behavior. (GP-4854)</li>
    <li><I>Debugger</I>. Fixed catchpoint-related errors in GDB versions &lt;= 10. (GP-4745, Issue #6666)</li>
    <li><I>Debugger</I>. Provided an initial fix for dealing with error induced by the occurrence of <span class="gcode">continue</span> during another GDB command. (GP-4750, Issue #6678)</li>
    <li><I>Debugger</I>. Fixed potential register description errors when <span class="gcode">info registers all</span> or <span class="gcode">info registers general</span> are invalid. (GP-4757)</li>
    <li><I>Debugger</I>. Added <span class="gcode">attach</span> script for dbgeng (WinDbg). (GP-4784, Issue #6735)</li>
    <li><I>Debugger</I>. Fixed an issue with Listing display when trace overlay spaces are present. This issue had affected the dbgmodel connector. (GP-4788)</li>
    <li><I>Debugger</I>. Removed test logic that was accidentally left in place. (GP-4841, Issue #6802)</li>
    <li><I>Debugger</I>. Fix for potentially missing <span class="gcode">Attributes</span> field from older versions of dbgmodel. (GP-4856, Issue #6825)</li>
    <li><I>Debugger</I>. The default Emulator was updated to remove TraceRmi launchers. Users should delete and re-import Emulator.tool, or remove the TraceRmiPlugin manually. (GP-4953)</li>
    <li><I>Debugger:Emulator</I>. Fixed memory-space issues, especially in RegistersProvider. (GP-4781)</li>
    <li><I>Debugger:Emulator</I>. Changed stack allocation to adhere to SP in program register context at PC. (GP-4834, Issue #6427)</li>
    <li><I>Debugger:GDB</I>. Fixed issue with GDB continuing instead of stepping over (or out of) library function calls. (GP-4858, Issue #6822)</li>
    <li><I>Debugger:Mappings</I>. Fixed launchers to adhere to <span class="gtitle">Modules</span> window's <span class="gtitle">Auto-Map</span> setting. Fixed <span class="gcode">DebuggerStaticMappingService</span> to update properly on changes. (GP-4713, Issue #6662)</li>
    <li><I>Debugger:Mappings</I>. Fixed/rewrote buggy <span class="gcode">StaticMappingService</span>. (GP-4868)</li>
    <li><I>Debugger:Memory</I>. Fixed stale <span class="gtitle">Force Full View</span> menu toggle when tabbing between traces. (GP-4835)</li>
    <li><I>Debugger:Registers</I>. Fixed issue preventing <span class="gtitle">Registers</span> panel from displaying frames other than 0. (GP-4850)</li>
    <li><I>Debugger:Watches</I>. Fixed issue in Watches where evaluation of concatenations failed. The error reported was <em>"index -1 in array of size 2"</em> or similar. (GP-4952)</li>
    <li><I>Decompiler</I>. Fixed analysis of floating-point expressions in the Decompiler that could sometimes cause loss of precision in constants. (GP-2559, Issue #4586, #5785, #6708)</li>
    <li><I>Decompiler</I>. Fixed a bug causing the Decompiler to fail to resolve array references properly in nested structures. (GP-4887)</li>
    <li><I>Decompiler</I>. Fixed a corner case in the Decompiler for optimized division simplification where the division operands are extended from different-sized variables. (GP-4890, Issue #6648)</li>
    <li><I>Decompiler</I>. Corrected a use after free vulnerability in Sleigh decompiler backend. (GP-4929, Issue #6890)</li>
    <li><I>Diff Tool</I>. Fixed the <span class="gtitle">Save Default Diff Apply Settings</span> action in the <span class="gtitle">Diff Apply Settings</span> window. (GP-4670)</li>
    <li><I>Eclipse Integration</I>. Fixed a GhidraDev issue that could result in a <span class="gcode">NullPointerException</span> within <span class="gcode">GhidraHelpService</span> when launching Ghidra. (GP-3490, Issue #6734)</li>
    <li><I>Function</I>. Fixed an issue with incomplete function body creation due to the removal of a branching reference when the branch destination was to the next instruction and the instruction flowType had no fallthrough. (GP-4926)</li>
    <li><I>GUI</I>. Fixed the Structure Editor <span class="gcode">Tab</span> key traversal. (GP-4716, Issue #5738)</li>
    <li><I>GUI</I>. Fixed issue in  add references dialog where moving the mouse sometimes reset the address space combo box back to the default ram space. (GP-4779)</li>
    <li><I>GUI</I>. Fixed minor rendering issues with combo boxes when using the Metal Look and Feel. (GP-4818)</li>
    <li><I>GUI</I>. Fixed <span class="gtitle">Structure Editor</span> sometimes not getting focus when opening. (GP-4857, Issue #6782)</li>
    <li><I>GUI</I>. Fixed an exception in the Stack editor when editing and using the down arrow. (GP-4891, Issue #6883)</li>
    <li><I>GUI</I>. Fixed incorrect cell being edited on <span class="gcode">Tab</span> key press while editing in the Enum Editor. (GP-4892, Issue #6873)</li>
    <li><I>Importer</I>. Fixed an <span class="gcode">IndexOutOfBoundsException</span> that could occur when loading OMF binaries. (GP-4884, Issue #6862)</li>
    <li><I>Importer:ELF</I>. Corrected regression bug where ELF Importer was ignoring option to disable relocation processing. (GP-4799, Issue #6751)</li>
    <li><I>Importer:ELF</I>. Added missing mips opinion for R3/4 n32 automatic processor identification during import. (GP-4939)</li>
    <li><I>Listing</I>. Fixed bug in the GoTo dialog where it wouldn't find a label if you had more than one namespace in the path. (GP-4761, Issue #6699)</li>
    <li><I>Multi-User</I>. Fixed regression causing Version Control status not updated after check-in. (GP-4921)</li>
    <li><I>PDB</I>. Supplied work-around for class that contains inner member with same class name as containing class name; pertaining to LLVM lambdas. (GP-4595)</li>
    <li><I>PDB</I>. Fixed a bug in the processing of PDB MSDIA names passed from the native <span class="gcode">pdb.exe</span> processing component.  Members that had a bit-field type or that had a namespace delimiter in the name were affected. (GP-4843, Issue #6788)</li>
    <li><I>Processors</I>. Fixed PIC16 <span class="gcode">PCLATH</span> and <span class="gcode">RP0</span> code flow and data reference issues. (GP-4596, Issue #3239, #6466)</li>
    <li><I>Processors</I>. Fixed ARM <span class="gcode">ldaexd</span> instruction semantics. (GP-4645, Issue #6526)</li>
    <li><I>Processors</I>. Fixed ARM <span class="gcode">sha1su0.32</span> instruction semantics. (GP-4646, Issue #6529)</li>
    <li><I>Processors</I>. Fixed ARM <span class="gcode">sha1su1.32</span> instruction semantics. (GP-4647, Issue #6530)</li>
    <li><I>Processors</I>. Corrected <span class="gcode">CMOV</span> semantics when destination and source overlap. (GP-4714, Issue #6523)</li>
    <li><I>Processors</I>. Fixed bug in SPARC <span class="gcode">sdivcc</span> instruction. (GP-4747, Issue #6689)</li>
    <li><I>Processors</I>. Fixed m68000 <span class="gcode">ext</span> instruction not updating flags. (GP-4749, Issue #6679, #6690)</li>
    <li><I>Processors</I>. Fixed extension of immediates for certain variants of the x86 <span class="gcode">SBB</span> instruction. (GP-4754, Issue #6521)</li>
    <li><I>Processors</I>. Corrected semantics for x86 <span class="gcode">PEXTR</span> instructions which write to memory. (GP-4769, Issue #6511)</li>
    <li><I>Processors</I>. Corrected semantics of x86 <span class="gcode">CMPPS</span> instruction. (GP-4772, Issue #6512)</li>
    <li><I>Processors</I>. Added semantics for several x86 AVX instructions in use by GCC: <span class="gcode">VCVTTSx2Sx</span>, <span class="gcode">VDIVSx</span>, <span class="gcode">VINSTERT128</span>, and <span class="gcode">VEXTRACT128</span>. (GP-4776)</li>
    <li><I>Processors</I>. Corrected semantics of x86 <span class="gcode">PACKUSWB</span> instruction. (GP-4777, Issue #6514)</li>
    <li><I>Processors</I>. Added missing float-to-integer cast operation, <span class="gcode">trunc()</span>, to x86 <span class="gcode">CVTSD2SI</span> instruction. (GP-4778, Issue #6513)</li>
    <li><I>Processors</I>. Fixed aliasing issues in certain x86 SIMD instructions. (GP-4783, Issue #6524)</li>
    <li><I>Processors</I>. Fixed incorrect <span class="gcode">.sla</span> file reference in PPC e500mc processor specification. (GP-4826)</li>
    <li><I>Processors</I>. Fixed issue with the M68000 <span class="gcode">fmovem.l</span> instruction using FPCR in place of FPIAR. (GP-4845, Issue #6810)</li>
    <li><I>Processors</I>. Fixed sparc 32/64-bit multiply instructions. (GP-4912, Issue #6287, #6346)</li>
    <li><I>ProgramDB</I>. Corrected <span class="gcode">NullPointerException</span> when setting instruction length override for a non-fallthrough instruction. (GP-4775)</li>
    <li><I>References</I>. Fixed spurious replacement of small constants when the low byte of an offset matches the low byte of the reference address.  Also turned the option to manipulate constants with masks and shifts to be off by default. (GP-4667, Issue #1564)</li>
    <li><I>Scripting</I>. Added check in the <span class="gcode">RecoverClassesFromRTTIScript</span> to make sure <span class="gcode">ClassHierarchyDescriptor</span> symbols are in a non-Global namespace before trying to promote their namespace to a class namespace. If such symbols are found in the Global namespace it indicates potential issues with either the RTTI data or the processing of the RTTI data; in these cases, no class recovery will be done for the associated classes. (GP-4763, Issue #6704)</li>
    <li><I>Scripting</I>. Fixed <span class="gcode">NullPointerException</span> in <span class="gcode">PropagateExternalParametersScript</span>. (GP-4883, Issue #6841)</li>
    <li><I>Scripting</I>. Fixed CodeUnitInsertionException error in RecoverClassesFromRTTIScript.java script. (GP-4932, Issue #6848)</li>
</ul>
</blockquote>
<blockquote><p><u><B>Notable API Changess</B></u></p>
<ul>
    <li><I>Search</I>. (GP-4559)
The MemorySearchService has been changed. This had been a very specific service API created to support just one plugin and was not generally useful. The three existing methods have been consolidated into one method.  The old service has been marked as deprecated and may be removed in future releases. If, in the unlikely event that anyone is using this service, please contact the Ghidra team to discuss your use case.
</li>
    <li><I>Data Types</I>. (GP-4949)
Added API method <span class="gcode">Structure.setLength(int length)</span> which allows the size of a non-packed structure to be set.
</li>
    <li><I>Debugger:Agents</I>. (GP-4847)
<span class="gcode">LaunchConfigurator.configureLauncher()</span> is changed such that <span class="gcode">arguments</span> now requires <span class="gcode">ValStr&lt;?&gt;</span> instead of just <span class="gcode">?</span> for its values. This affects both the new Trace-RMI launchers and the deprecated object-model launchers.
</li>
</ul>
</blockquote>

<H1 align="center">Ghidra 11.1.2 Change History (July 2024)</H1>
<blockquote><p><u><B>New Features</B></u></p>
<ul>
    <li><I>Basic Infrastructure</I>. Ghidra native components (Decompiler, GNU Demangler, etc.) now run properly on Windows ARM using x86 emulation.  Building natively for Windows ARM is not yet supported (Gradle limitation). (GP-4738)</li>
</ul>
</blockquote>
<blockquote><p><u><B>Improvements</B></u></p>
<ul>
    <li><I>Data Types</I>. Corrected resolution of typedefs whose name matches the underlying type name. (GP-4751, Issue #6493)</li>
    <li><I>Processors</I>. Made minor semantic changes to the X86 processor specification for several AVX instructions as well as changes to UDF undefined instructions. (GP-4724)</li>
</ul>
</blockquote>
<blockquote><p><u><B>Bugs</B></u></p>
<ul>
    <li><I>Data Types</I>. Fixed Structure bug where DB may not be updated properly with length change induced by certain operations (e.g., <span class="gcode">insertBitFieldAt</span>). (GP-4756)</li>
    <li><I>Data Types</I>. Fixed formatting of float value <span class="gcode">-0.0</span> within assembly Listing view. (GP-4759, Issue #6677)</li>
    <li><I>Debugger</I>. Added <span class="gcode">.bat</span> launchers for GDB and LLDB on Windows. (GP-4677)</li>
    <li><I>Debugger</I>. Fixed GDB <span class="gcode">show version</span> parse error. (GP-4698, Issue #6646)</li>
    <li><I>Debugger</I>. Fixed an issue with handling of memory read errors in GDB TraceRMI connector. (GP-4701, Issue #6647)</li>
    <li><I>Debugger</I>. Fixed GDB endianness calculation. (GP-4704, Issue #6656)</li>
    <li><I>Debugger:GDB</I>. Provided fall-back to refresh all registers when <span class="gcode">general</span> is not recognized by GDB as a register group. (GP-4710, Issue #6635)</li>
    <li><I>Importer:ELF</I>. Fixed ELF X86-64 GOT allocation bug which could cause exception during import.  Also added unverified ELF relocation support for <span class="gcode">R_X86_64_GOT64</span> and <span class="gcode">R_X86_64_PLTOFF64</span>. (GP-4758, Issue #6691)</li>
    <li><I>Importer:Mach-O</I>. Fixed an issue with importing Mach-O binaries that have an empty <span class="gcode">__chain_starts</span> section. (GP-4695)</li>
    <li><I>Importer:Mach-O</I>. Fixed a regression in the MachoLoader that prevented some KDK binaries from being loaded. (GP-4699)</li>
    <li><I>Multi-User:Merge</I>. Fixed assertion error which occured for multi-user merge of register context within overlay memory blocks. (GP-4508, Issue #6403)</li>
    <li><I>Processors</I>. Fixed AARCH64 Windows stack alignment. (GP-4752, Issue #6680)</li>
</ul>
</blockquote>

<H1 align="center">Ghidra 11.1.1 Change History (June 2024)</H1>
<blockquote><p><u><B>Bugs</B></u></p>
<ul>
    <li><I>Debugger</I>. Fixes an error in <span class="gcode">dbgeng</span> launcher. (GP-4674)</li>
    <li><I>Debugger:GDB</I>. Fixed issue with using QEMU launchers in Trace RMI (<span class="gcode">ClassCastException</span> from <span class="gcode">String</span> to <span class="gcode">PathIsFile</span>) (GP-4690, Issue #6634)</li>
    <li><I>Decompiler</I>. Fixed a bug in the Decompiler that could cause it to drop a control-flow edge from a switch's case statement that looped back to the switch. (GP-4582, Issue #6282)</li>
    <li><I>Decompiler</I>. Fixed bug causing "Undefined Pullsub" exceptions. (GP-4672, Issue #6614)</li>
    <li><I>Decompiler</I>. Corrected Decompiler process issue which can occur when analysis is cancelled.  Issue would incorrectly popup error indicating <em>"Decompiler executable may not be compatible with your system..."</em>. (GP-4689)</li>
    <li><I>GUI</I>. Fixed mouse button 4/5 processing failure that caused the left-click to stop working. (GP-4681, Issue #6624)</li>
    <li><I>Processors</I>. Added support for the Z80 processor undocumented registers. (GP-2881, Issue #4485)</li>
    <li><I>Processors</I>. Fixed 6805 branch conditional instruction semantics. (GP-4585, Issue #6482)</li>
    <li><I>Project</I>. Fixed a severe regression bug introduced with Ghidra 11.1 which could prevent a user from completing a project file add-to-version-control, checkin or merge when they currently have the file open in a tool.  The corresponding open project file would remain in a bad state following the operation. (GP-4692)</li>
</ul>
</blockquote>

<H1 align="center">Ghidra 11.1 Change History (June 2024)</H1>
<blockquote><p><u><B>New Features</B></u></p>
<ul>
    <li><I>Assembler</I>. Added the <span class="gcode">WildcardAssembler</span> module and API for allowing the masking of operands. (GP-4287, Issue #6118)</li>
    <li><I>Basic Infrastructure</I>. Replaced the <span class="gtitle">Show VM Memory</span> dialog with an upgraded <span class="gtitle">Runtime Information</span> dialog.  The dialog contains more information which can aid in debugging, including version information, classpath, defined properties, environment variables, and more. (GP-3844, Issue #5760)</li>
    <li><I>Debugger</I>. Added a Trace RMI launcher for Windows targets on Linux using Wine. (GP-3891)</li>
    <li><I>Debugger</I>. Added Trace RMI connector for Microsoft Time-Travel Debugging. (GP-4182)</li>
    <li><I>Debugger:Agents</I>. Added TraceRMI protocol to provide access to the trace database API over protobufs. This is a simpler alternative to GADP.  Implemented TraceRMI client for Python3; added TraceRMI plugins for GDB, LLDB, and WinDbg (dbgeng).  Added services, APIs and GUI components for managing TraceRMI connections. (GP-3816)</li>
    <li><I>Debugger:dbgeng.dll</I>. Extended dbgeng Trace RMI connector to support dbgmodel. (GP-4290)</li>
    <li><I>Debugger:GDB</I>. Added Trace RMI connector for QEMU with GDB. (GP-3838)</li>
    <li><I>Debugger:GDB</I>. Added <span class="gcode">raw</span> GDB and Python 3 connectors. (GP-4439)</li>
    <li><I>DWARF</I>. Added DWARF5 support. (GP-2798, Issue #4088)</li>
    <li><I>Eclipse Integration</I>. The GhidraDev Eclipse plugin has a new wizard for importing an existing Ghidra module source directory.  This will work best with Ghidra module projects created against Ghidra 11.1 or later. (GP-707, Issue #284)</li>
    <li><I>FileSystems</I>. Added a new <span class="gcode">GFileSystem</span> for Mach-O file sets (i.e., the kernelcache). (GP-3770, Issue #4827)</li>
    <li><I>FileSystems</I>. Added support for SquashFS FileSystems. (GP-3946)</li>
    <li><I>FileSystems</I>. Added support for decompressing LZFSE files (iOS/macOS kernelcache) to the File System Browser. (GP-4391)</li>
    <li><I>GhidraGo</I>. Remote and local GhidraURL's that locate DomainFolders are now acceptable input for GhidraGo. Both result in opening the read-only view for the project and selecting the DomainFolder in the FrontEnd.  If the local URL refers to the currently active project, the domain folder will be selected within that. (GP-4433)</li>
    <li><I>Languages</I>. Improved Swift support by adding Swift Demangler, Swift cspecs, Swift opinions, and by applying type metadata where possible. (GP-3535)</li>
    <li><I>Version Tracking</I>. Added ability for Version Tracking Session files to be checked into a version control repository.  Versioned use is restricted to exclusive checkout use only since there no ability to merge VT Session data. (GP-4085)</li>
</ul>
</blockquote>
<blockquote><p><u><B>Improvements</B></u></p>
<ul>
    <li><I>Accessibility</I>. Improved filter options dialog for accessibility. (GP-2264)</li>
    <li><I>Accessibility</I>. Fixed several focus traversal issues. Also, added convenience actions for moving to next/previous window (<span class="gcode">Ctrl-F3</span>/<span class="gcode">Shift-Ctrl-F3</span>) and next/previous component provider (<span class="gcode">Ctrl-J</span>/<span class="gcode">Shift-Ctrl-J</span>). (GP-4227)</li>
    <li><I>Accessibility</I>. Added quick action dialog to make actions accessible and more convenient for users who prefer to use keyboard more than mouse. <span class="gcode">Ctrl-3</span> will bring up the dialog. (GP-4267)</li>
    <li><I>Accessibility</I>. Added accessible names to most main provider components. (GP-4275)</li>
    <li><I>Accessibility</I>. Improved analyzer enablement so that checkboxes can be changed via the keyboard using the spacebar. (GP-4375, Issue #6261)</li>
    <li><I>Accessibility</I>. Improved export options window to allow changing checkboxes via keyboard using the spacebar. (GP-4414, Issue #6279)</li>
    <li><I>Accessibility</I>. Improved keyboard navigation in <span class="gtitle">Add Reference</span> dialog. (GP-4491, Issue #5761)</li>
    <li><I>Accessibility</I>. Improved Accessibility for assorted <span class="gtitle">Memory Map</span> dialogs. (GP-4511)</li>
    <li><I>Analysis</I>. Sped up switch recovery analysis on AArch64 objectiveC binaries where <span class="gcode">BRK</span> instruction is used throughout the code for exceptions. (GP-4364)</li>
    <li><I>Analysis</I>. Added pattern to recognize PPC <span class="gcode">get_pc_thunk_lr</span> position-independent-code-related function. (GP-4474)</li>
    <li><I>Analysis</I>. The speed of the <span class="gtitle">Create Address Tables</span> analyzer has been improved for large runs of addresses. (GP-4477)</li>
    <li><I>API</I>. Created builder for <span class="gcode">DomainObjectListeners</span> to express even-handling logic more concisely. (GP-4222)</li>
    <li><I>API</I>. Revised <span class="gcode">DomainObject</span> java interface while eliminating separate <span class="gcode">UndoableDomainObject</span> and <span class="gcode">Undoable</span> java interface classes.  Revised tool-based foreground <span class="gcode">Command</span>-processing to defer event-flushing into a background task.  Additional <span class="gcode">execute</span> methods were added to <span class="gcode">PluginTool</span> which allow lambda functions to be used in the place of a <span class="gcode">Command</span> object. (GP-4390)</li>
    <li><I>Assembler</I>. Added context hints to <span class="gtitle">Patch Instruction</span> (Assembler) results. (GP-3993)</li>
    <li><I>Assembler</I>. Context is re-flowed and instructions re-disassembled following the <span class="gtitle">Patch Instruction</span> action. (GP-4014)</li>
    <li><I>Assembler</I>. By virtue of API changes, the Assembler is now more extensible by plugins for advanced use cases. (GP-4185)</li>
    <li><I>Basic Infrastructure</I>. Ghidra now supports the XDG Base Directory Specification.  Default locations of the user settings, cache, and temporary directories have moved to more standardized platform-specific locations.  See comments in the <span class="gcode">support/launch.properties</span> file for more detailed information on how these directories are determined and overridden. (GP-1164, Issue #908)</li>
    <li><I>Basic Infrastructure</I>. Improved the start up time of Ghidra by only loading <span class="gcode">ExtensionPoints</span> when they are first requested. (GP-4515)</li>
    <li><I>Build</I>. Fixed compilation of <span class="gcode">TreeValueSortedMap</span> for Java 21. (GP-3923, Issue #6083)</li>
    <li><I>Build</I>. Ghidra will now run on FreeBSD with user-built native components using the <span class="gcode">support/buildNatives</span> script.  See the Installation Guide for more information on building native components.  NOTE:  <span class="gcode">bash</span> is required to be installed in order for Ghidra to launch on FreeBSD.  Additionally, the Debugger is not currently supported on FreeBSD. (GP-4235, Issue #6117)</li>
    <li><I>Byte Viewer</I>. Added the ability to resize the <span class="gtitle">Address</span> column in the ByteViewer window. (GP-2147)</li>
    <li><I>Data</I>. Added <span class="gcode">writable</span> Mutability data setting to allow chosen data within a read-only memory block to deviate from the block setting.   Decompiler was updated to respect this setting. (GP-4505)</li>
    <li><I>Data Types</I>. Improved datatype resolution and conflict handling as well as datatype name sorting. (GP-3632)</li>
    <li><I>Debugger</I>. Domain Object event ID numbers have been refactored to be enums. (GP-2076)</li>
    <li><I>Debugger</I>. Removed TargetRecorder-dependent methods from FlatDebuggerAPI. Moved them to deprecated FlatDebuggerRecorderAPI. Ported FlatDebuggerAPI to Target interface. Added FlatDebuggerRmiAPI. (GP-3872)</li>
    <li><I>Debugger</I>. Moved launch and control command progress monitors to the <span class="gtitle">Debug Console</span>. (GP-3997)</li>
    <li><I>Debugger</I>. The <span class="gtitle">Sections Table</span> pane can now be toggled on and off in the <span class="gtitle">Modules</span> window. (GP-4156)</li>
    <li><I>Debugger</I>. Upgraded to most current release of llvm/lldb (17.x). (GP-4385)</li>
    <li><I>Debugger</I>. Added Trace RMI connector for GDB <span class="gcode">target remote</span>. (GP-4437)</li>
    <li><I>Debugger</I>. Made modifications to accommodate remote embedded targets. (GP-4441)</li>
    <li><I>Debugger</I>. Released Trace RMI as the default Debugger back end. (GP-4485)</li>
    <li><I>Debugger</I>. Made modifications to enable traceRMI dialog-driven methods. (GP-4527)</li>
    <li><I>Debugger:Agents</I>. Released version 11.1 of Trace RMI python packages and protocol. (GP-4487)</li>
    <li><I>Debugger:Agents</I>. The launch failure dialog now previews the last two lines of each Terminal. Selecting <span class="gtitle">Keep</span> will automatically bring those terminals to the front. (GP-4637)</li>
    <li><I>Debugger:Emulator</I>. Pure emulation use cases can now involve thread creation and destruction and they can be recorded linearly in a trace. (GP-4374)</li>
    <li><I>Debugger:Listing</I>. Added context menu to location label in <span class="gtitle">Dynamic Listing</span> and <span class="gtitle">Memory Bytes</span> windows. (GP-4311)</li>
    <li><I>Debugger:Listing</I>. Progress for memory reads now displays in the <span class="gtitle">Debug Console</span> window. (GP-4399)</li>
    <li><I>Debugger:Mappings</I>. Moved initial mapping failure at launch to the <span class="gtitle">Debug Console</span>, rather than popping the launch failure dialog. (GP-4636)</li>
    <li><I>Debugger:Memory</I>. Made <span class="gtitle">Memory</span> window more consistent with <span class="gtitle">Dynamic Listing</span> window in terms of appearance and operation. (GP-1625)</li>
    <li><I>Debugger:Stack</I>. Added <span class="gtitle">Module</span> column to <span class="gtitle">Stack</span> window. (GP-4093)</li>
    <li><I>Debugger:Threads</I>. Moved trace selection tabs to <span class="gtitle">Dynamic Listing</span>. (GP-1608)</li>
    <li><I>Debugger:Threads</I>. Added <span class="gtitle">PC</span>, <span class="gtitle">Function</span>, <span class="gtitle">Module</span>, and <span class="gtitle">SP</span> columns to the <span class="gtitle">Threads</span> table. (GP-4236)</li>
    <li><I>Debugger:Threads</I>. Removed <span class="gtitle">Synchronize Target Activation</span> toggle. Time navigation is now prohibited in Target control mode, especially using the Plot column header. (GP-4334)</li>
    <li><I>Decompiler</I>. Added  <span class="gtitle">Edit Signature Override</span> action to Decompiler.  Improved cleanup of unused override signature datatypes. (GP-4263, Issue #6000)</li>
    <li><I>Decompiler</I>. The Decompiler is now able to simplify additional forms of 64-bit optimized integer division. (GP-4300, Issue #5733)</li>
    <li><I>Decompiler</I>. Added additional Decompiler support for recovering the addresses of calls and other global symbols for MIPS binaries compiled with Position-Independent Code (PIC) options. (GP-4370)</li>
    <li><I>Decompiler</I>. The Decompiler now displays array index constants using the configured <span class="gcode">Integer format</span>, rather than always using base 10. (GP-4394, Issue #6019)</li>
    <li><I>Disassembly</I>. Created <span class="gcode">FixOffcutInstructionScript</span> that attempts to automatically fix an offcut instruction and its references in a restricted fashion. This script can be bound to a hotkey for a user to quickly attempt fixups throughout a program.  Also, updated the set instruction length override action to automatically suggest a reasonable length, based on offcut flows, and to disassemble these flows if used. (GP-4034, Issue #5928)</li>
    <li><I>Disassembly</I>. Fixed storage of default disassembly context to the program database.  Programs with no stored context, which is most, will disassemble faster. (GP-4535)</li>
    <li><I>Disassembly</I>. Improved disassembly speed and use of instructions for any purpose by delaying check of instruction overrides until needed. (GP-4536)</li>
    <li><I>Documentation</I>. Updated Debugger training materials for Trace RMI. (GP-3887)</li>
    <li><I>Eclipse Integration</I>. Upgraded the GhidraDev Eclipse plugin to make it compatible with Ghidra 11.1. (GP-4176)</li>
    <li><I>Eclipse Integration</I>. The Ghidra Eclipse preferences and formatter files are now included in the release under <span class="gcode">support/eclipse/</span>. (GP-4233, Issue #5999)</li>
    <li><I>Framework</I>. Updated system actions to allow for user-defined key bindings. (GP-4317)</li>
    <li><I>GUI</I>. Added tool option to remove quotes from strings before putting into clipboard. (GP-3871, Issue #1155)</li>
    <li><I>GUI</I>. Simplified the dialog for switching themes. (GP-4172, Issue #6024)</li>
    <li><I>GUI</I>. Updated the Help Info keybinding to <span class="gcode">Ctrl-Shift-F1</span> in order for components to allow <span class="gcode">Ctrl-F1</span> to work for showing tooltips. (GP-4304)</li>
    <li><I>GUI</I>. Added a <span class="gtitle">Copy Special</span> action to the Listing to copy the byte source offset of the selected address. (GP-4318, Issue #6195)</li>
    <li><I>GUI</I>. Updated Key Binding options for actions to allow users to set mouse bindings. (GP-4436, Issue #208)</li>
    <li><I>Importer</I>. Added ability to import/export multiple program trees using SARIF. (GP-4079)</li>
    <li><I>Importer</I>. The MzLoader can now load binaries whose file size is less than the size that is reported in its header. (GP-4260, Issue #6029)</li>
    <li><I>Importer</I>. The Importer post-load message log is now echoed to the application.log file. This behavior can be disabled in the <span class="gcode">support/launch.properties</span> file by uncommenting the <span class="gcode">VMARGS=-Ddisable.loader.logging=true</span> line. (GP-4313)</li>
    <li><I>Importer</I>. The PeLoader now pads memory blocks with zeros instead of creating an uninitialized block with the same name. (GP-4347, Issue #6238)</li>
    <li><I>Importer</I>. Fixed an issue in the MzLoader where the default Program Tree was out of sync with the Memory Map. (GP-4432, Issue #6277)</li>
    <li><I>Importer:COFF</I>. COFF headers are now marked up. (GP-4184)</li>
    <li><I>Importer:ELF</I>. Added relocation handlers for the TI_MSP430 and TI_MSP430X processors. (GP-4152)</li>
    <li><I>Importer:ELF</I>. Added ELF Import option to enable/disable the creation of undefined data for data symbols with known sizes.  This option is enabled by default. (GP-4178)</li>
    <li><I>Importer:ELF</I>. Transitioned to new <span class="gcode">AbstractElfRelocationHandler</span> implementation which uses <span class="gcode">ElfRelocationType</span> enums specific to each handler. (GP-4239)</li>
    <li><I>Importer:ELF</I>. Relaxed ELF <span class="gcode">PT_DYNAMIC</span> restriction to allow it to be processed when not covered by a <span class="gcode">PT_LOAD</span>. (GP-4291, Issue #5784)</li>
    <li><I>Importer:Mach-O</I>. Improved handling of Mach-O <span class="gcode">DYLD_CHAINED_PTR_ARM64E_KERNEL</span> chained pointer fixups. (GP-4259, Issue #6144, #6145)</li>
    <li><I>Importer:Mach-O</I>. The <span class="gcode">dyld_shared_cache</span> loader now implements pointer fixups for newer versions that use <span class="gcode">dyld_cache_slide_info5</span>. (GP-4380)</li>
    <li><I>Importer:Mach-O</I>. The MachoLoader now does a better job at importing binaries with corrupted load commands. (GP-4561, Issue #6271)</li>
    <li><I>Languages</I>. Added support for structured data-type parameters for x86 64-bit System V ABI. (GP-4031)</li>
    <li><I>Languages</I>. Added Golang 1.21 support. (GP-4183, Issue #6072)</li>
    <li><I>Languages</I>. Added support for Apple Silicon and AARCH64 Golang binaries. (GP-4465)</li>
    <li><I>Languages</I>. Added support for Golang 1.22.  Versions supported are now 1.17-1.22. (GP-4579)</li>
    <li><I>Listing</I>. Added options to wrap operand fields on semicolons. This is to better support processors that have more than one instruction at an address. (GP-4289)</li>
    <li><I>Memory</I>. Added <span class="gcode">Artificial</span> memory block flag intended to identify those blocks that the Debugger should not map into a running target. (GP-4125)</li>
    <li><I>Memory</I>. Removed lock contention on reading and update of memory AddressSet cache. (GP-4534)</li>
    <li><I>Multi-User</I>. Significantly improved shared project directory performance when directories contain a very large number of files. (GP-4456)</li>
    <li><I>PDB</I>. Modified <span class="gcode">LoadPdbTask</span> to schedule <span class="gcode">EntryPointAnalyzer</span>. (GP-4244)</li>
    <li><I>PDB</I>. Modified <span class="gcode">PdbUniversalAnalyzer</span> to do work into multiple phases so that this work can benefit from work done in interim analyzers. (GP-4245)</li>
    <li><I>PDB</I>. Reduced number of data type conflicts by delaying the resolve step in the multi-phased resolve process.  Also refactored the multi-phased resolve, removing placeholder types. (GP-4246)</li>
    <li><I>PDB</I>. Stubbed additional larger-than-64-bit pointers to ensure they do not cause problem when used. (GP-4264)</li>
    <li><I>PDB</I>. Improved mechanism for setting primary symbols; reduced memory footprint by removing primary symbol map and using the now-more-performant ghidra primary symbol methods. (GP-4335, Issue #3497)</li>
    <li><I>Processors</I>. Added subset of Tricore relocations as well as function start patterns. (GP-3110, Issue #1449)</li>
    <li><I>Processors</I>. Corrected errors in the MSP430 SLEIGH specification. (GP-4401, Issue #4120)</li>
    <li><I>Processors</I>. Corrected implementation of <span class="gcode">ZR</span> (aka <span class="gcode">R0</span>) register access for MCS-96 processor. (GP-4407, Issue #6181)</li>
    <li><I>Processors</I>. Added callfixup for <span class="gcode">__chkstk()</span> found in windows AARCH64 binaries. (GP-4513)</li>
    <li><I>ProgramDB</I>. Improved locking behavior of Instructions and Data when retrieving bytes from memory. (GP-4568)</li>
    <li><I>Project</I>. Added an abstract <span class="gcode">GhidraURLQueryTask</span> and related <span class="gcode">GhidraURLQuery</span> utlity class to failitate proper GhidraURL queries and to avoid replication of code. (GP-4447)</li>
    <li><I>Scripting</I>. Python scripts now have access to the <span class="gcode">this</span> variable, which is a reference to its parent GhidraScript object.  It may be necessary to refer to <span class="gcode">this</span> in certain scenarios, such as when releasing the consumer of a Program object returned by <span class="gcode">askProgram()</span>. (GP-4157)</li>
    <li><I>Scripting</I>. Updated <span class="gcode">RecoverClassesFromRTTIScript</span>'s GCC class recovery to handle copy relocations. (GP-4396)</li>
    <li><I>Scripting</I>. Added script to paste address/bytes copied as text from a Ghidra Listing. (GP-4480)</li>
    <li><I>Scripting</I>. Upgraded OSGi-related jars. (GP-4550)</li>
    <li><I>Sleigh</I>. Compiled SLEIGH (<span class="gcode">.sla</span>) files are now stored in a compressed format to save disk space and shorten language load times. (GP-4285)</li>
    <li><I>Testing</I>. Upgraded jacoco to version 0.8.11. (GP-4262)</li>
    <li><I>Version Tracking</I>. Added <span class="gtitle">Function Compare</span> action to the <span class="gtitle">Version Tracking</span> main match table and associated match tables. (GP-4251, Issue #6010)</li>
</ul>
</blockquote>
<blockquote><p><u><B>Bugs</B></u></p>
<ul>
    <li><I>Analysis</I>. Improved recovery of additional windows resource references in certain cases by handling the decompiler produced <span class="gcode">MULTI_EQUAL</span> pcode operation. (GP-7)</li>
    <li><I>Analysis</I>. Exported symbols are now checked that they are not symbols internal to a function before creating a function. (GP-4506)</li>
    <li><I>Data</I>. Corrected improper Data pointer stacking behavior when applying a pointer data type onto an existing pointer. (GP-4181)</li>
    <li><I>Data Types</I>. Corrected various Data settings issues where Listing display failed to update properly with settings change. (GP-4212, Issue #5922)</li>
    <li><I>Data Types</I>. Corrected transaction error when disassociating a datatype from an archive not open for update. (GP-4524, Issue #6424)</li>
    <li><I>Data Types</I>. Fixed searching for references to structure fields when the field is referenced in a local structure that is then passed to an external function.  This has a major effect on Windows programs. (GP-4592, Issue #5652)</li>
    <li><I>Data Types</I>. Corrected data type source archive transaction error when performing bulk archive revert, update, and disassociate actions. (GP-4615, Issue #6503)</li>
    <li><I>Debugger</I>. Fixed module map to ignore artificial blocks, especially <span class="gcode">tdb</span> on Windows. (GP-4072, Issue #5994)</li>
    <li><I>Debugger</I>. Fixed thread-specific stepping in dbgmodel. (GP-4279)</li>
    <li><I>Debugger:Emulator</I>. Fixed issue where step command is ignored after the emulator encounters an error; e.g., undefined userop. (GP-4248, Issue #6086)</li>
    <li><I>Debugger:Listing</I>. <span class="gtitle">GoTo</span> in Dynamic Listing can now find symbols with external linkage; e.g., IAT entries. (GP-3408)</li>
    <li><I>Debugger:Listing</I>. Fixed issue with incorrect byte values in Debugger's snapshot comparison listing. (GP-4528)</li>
    <li><I>Debugger:Memory</I>. Fixed error message regarding closed programs in the navigation history when using the <span class="gtitle">Memory</span> (dynamic hex) viewer. (GP-4100)</li>
    <li><I>Decompiler</I>. Corrected issue with Decompiler return/param commit which could cause return details to revert to default state. (GP-4434, Issue #6318)</li>
    <li><I>Decompiler</I>. Fixed Decompiler bug causing erroneous <span class="gcode">case</span> labels for some switches contained in an <span class="gcode">if</span> block. (GP-4514, Issue #6128)</li>
    <li><I>Demangler</I>. Fixed out-of-memory issue in MDMang due to infinite loop. (GP-4641, Issue #6586)</li>
    <li><I>FID</I>. Corrected FID error caused by Functions defined where no memory block resides. (GP-4584, Issue #6453)</li>
    <li><I>Graphing</I>. Fixed <span class="gcode">NullPointerException</span> in the <span class="gcode">ChkDominanceAlgorithm</span>. (GP-4530)</li>
    <li><I>GUI</I>. Fixed Listing to navigate to requested address when opening from a URL. (GP-4281, Issue #6166)</li>
    <li><I>GUI</I>. Fixed Memory Search results to select all matched address when making a selection from the results table. (GP-4538, Issue #6415)</li>
    <li><I>GUI</I>. Fixed stack overflow in Bundle Manager window when trying to remove all bundles. (GP-4604)</li>
    <li><I>Importer</I>. Fixed the handling of non-default address spaces, specific to SARIF. (GP-4097)</li>
    <li><I>Importer</I>. Fixed <span class="gcode">NullPointerException</span>s in the SARIF handlers. (GP-4510)</li>
    <li><I>Importer</I>. Fixed an issue in the MzLoader that would prevent some 16-bit MZ binaries from loading correctly. (GP-4575, Issue #5970)</li>
    <li><I>Importer</I>. Fixed a regression that prevented library search paths from getting saved. (GP-4594)</li>
    <li><I>Importer:Mach-O</I>. The MachoLoader no longer throws an exception when importing DWARF dSYM companion files. (GP-4417, Issue #6302)</li>
    <li><I>Importer:PE</I>. Fixed an <span class="gcode">EOFException</span> in the PeLoader that could occur when data directories point to section padding bytes. (GP-4496, Issue #6380)</li>
    <li><I>Importer:PE</I>. Fixed an issue with the provided <span class="gcode">.exports</span> files not getting properly used in some scenarios. (GP-4628)</li>
    <li><I>Languages</I>. Corrected handling of operand-size override prefix with x86 <span class="gcode">MOVSX</span>/<span class="gcode">MOVZX</span> instructions. (GP-4629, Issue #6525)</li>
    <li><I>Multi-User</I>. Corrected potential deadlock condition within Ghidra Server. (GP-4531)</li>
    <li><I>PDB</I>. Removed PDB symbol server URLs from default list that don't publish PDBs. (GP-4266, Issue #3109, #6152)</li>
    <li><I>PDB</I>. Fixed issue preventing VS6 PDB from being processed due to unexpected unavailable <span class="gcode">DebugData</span> streams. (GP-4571, Issue #6464)</li>
    <li><I>Processors</I>. Added support for x86 AVX512 instructions (GP-1561, Issue #2209, #4704, #6458)</li>
    <li><I>Processors</I>. Added PIC16F <span class="gcode">movlb</span> variant instruction form to processor module. (GP-3723)</li>
    <li><I>Processors</I>. Fixed Xtensa <span class="gcode">bany</span> semantics and added simplifying cases for <span class="gcode">sext</span> instruction. (GP-4254, Issue #6113)</li>
    <li><I>Processors</I>. Corrected register sizing for the x86 <span class="gcode">str</span> instruction. (GP-4272, Issue #6156)</li>
    <li><I>Processors</I>. Fixed bug in the M68000 processor with instructions referencing immediate byte values displaying erroneous two-byte values. (GP-4377, Issue #4191, #6260)</li>
    <li><I>Processors</I>. Fixed operand ordering in x86 <span class="gcode">FDIVP</span> instruction. (GP-4381, Issue #6266)</li>
    <li><I>Processors</I>. Made several bug fixes for SuperH processor module. (GP-4498, Issue #5967, #6013)</li>
    <li><I>Processors</I>. Fixed AARCH64 <span class="gcode">ldst</span> instruction to properly support register writeback. (GP-4499)</li>
    <li><I>Processors</I>. Fixed Tricore <span class="gcode">st.da</span> instruction writing half-words instead of words. (GP-4552, Issue #6456)</li>
    <li><I>Processors</I>. Updated x86-64 <span class="gcode">RCL</span> and <span class="gcode">RCR</span> instructions to set  <span class="gcode">CF</span> correctly. (GP-4576, Issue #6423)</li>
    <li><I>References</I>. Updated <span class="gcode">EditMemoryReferencePanel</span> to enable inclusion of <span class="gcode">OTHER</span> overlay spaces for address specification. (GP-4345, Issue #6245)</li>
    <li><I>Version Tracking</I>. Improved Version Tracking <span class="gtitle">Implied Match</span> determination to make sure the destination location is a function if the source location is a function. (GP-4283)</li>
</ul>
</blockquote>

<H1 align="center">Ghidra 11.0.3 Change History (April 2024)</H1>
<blockquote><p><u><B>Improvements</B></u></p>
<ul>
    <li><I>Decompiler</I>. Fixed v850 Decompiler treatment of global <span class="gcode">GP</span> and <span class="gcode">TP</span> registers as separate registers. (GP-4479, Issue #3515)</li>
    <li><I>Languages</I>. Added thunk patterns for use of <span class="gcode">BTI C/CJ</span> instruction at start of AARCH64 thunk functions. (GP-3917)</li>
    <li><I>Processors</I>. Added p0/p8 registers as prefer split to Tricore.cspec (GP-4507, Issue #3515)</li>
</ul>
</blockquote>
<blockquote><p><u><B>Bugs</B></u></p>
<ul>
    <li><I>Build</I>. Corrected build problem that causes module src.zip files to be omitted from distribution when a <span class="gcode">externalGhidraExtension</span> is present.  This did not impact the current Public release since it does not include any such modules. (GP-4492)</li>
    <li><I>Decompiler</I>. Fixed bug causing switch analysis to lay down jump tables with extra entries. (GP-4416)</li>
    <li><I>Processors</I>. Fixed regression in Tricore calling convention for parameters and returns that are a smaller datatype than the full register size. (GP-4468, Issue #6354)</li>
    <li><I>Scripting</I>. Fixed <span class="gcode">NullPointerException</span> in the <span class="gcode">RecoverClassFromRTTIScript</span> that happened for Windows programs when a class had a hierarchy at least four levels deep, with a single inheritance chain, and with the root being a virtual class. (GP-4459, Issue #6348)</li>
    <li><I>Version Tracking</I>. Corrected potential Exception within address correlators that check function parameters. (GP-4490)</li>
</ul>
</blockquote>

<H1 align="center">Ghidra 11.0.2 Change History (March 2024)</H1>
<blockquote><p><u><B>Improvements</B></u></p>
<ul>
    <li><I>Accessibility</I>. Eliminated redundant screen-reading of text with cursor-up and cursor-down movements in the Decompiler view. (GP-4297, Issue #6177)</li>
    <li><I>Debugger:GDB</I>. Fixed an issue connecting to GDB on some builds of Windows. (GP-4392, Issue #6107)</li>
    <li><I>Decompiler</I>. The Decompiler now treats software breakpoints as indirect calls that do not take parameters and do not return. (GP-4332)</li>
    <li><I>Decompiler</I>. Improved detection of switch variables when their path crosses a call. (GP-4369)</li>
    <li><I>Headless</I>. Updated analyzer options to not create Java Swing components in headless mode. (GP-4309)</li>
    <li><I>Importer:ELF</I>. Revised ELF PowerPC relocation processing for <span class="gcode">R_PPC_ADDR16_LO</span> and <span class="gcode">R_PPC_ADDR16_HA</span> to address FreeBSD conventions. (GP-4397)</li>
    <li><I>Multi-User</I>. Updated Ghidra Server <span class="gcode">server.conf</span> to facilitate specification of enabled TLS cipher suites.  Enabled cipher suites have been constrained by default, consistent with RFC 9151. (GP-4330)</li>
    <li><I>Multi-User</I>. Made minor improvement to shared project performance when populating folders containing a large number of files.  This was done by caching the FileID associated with each remote project file. (GP-4455)</li>
    <li><I>Processors</I>. Added support for ARM v8-M Custom Datapath Extension. (GP-1791)</li>
    <li><I>Scripting</I>. Added check to <span class="gcode">RecoverClassesFromRTTIScript</span> to not run if there are unhandled relocations in GCC programs for the necessary RTTI symbols. (GP-4371)</li>
</ul>
</blockquote>
<blockquote><p><u><B>Bugs</B></u></p>
<ul>
    <li><I>Analysis</I>. Fixed analysis lockup if the fall-through of an instruction is overridden to itself. (GP-4312, Issue #6179)</li>
    <li><I>Analysis</I>. Loosened MIPS jump target function-start pattern. (GP-4442, Issue #3677, #4193)</li>
    <li><I>BSim</I>. Corrected BSim command <span class="gcode">listexes --limit</span> option processing. (GP-4362, Issue #6246)</li>
    <li><I>Build</I>. Removed unused log4j-jcl 2.16.0 jar dependency.  Updated postgresql JDBC driver jar to 42.6.2. (GP-4449)</li>
    <li><I>Debugger</I>. Removed leading slash in executable path for Windows launch options. (GP-4331)</li>
    <li><I>Debugger:GDB</I>. Fixed issue parsing breakpoints with command lists, especially with <span class="gtitle">Use existing session (new-ui)</span>. (GP-4368, Issue #6257)</li>
    <li><I>Debugger:Listing</I>. Auto-disassembly now ignores <span class="gcode">UNKNOWN</span> memory (fixed regression) and re-disassembles if PC lands offcut in an existing instruction. (GP-4278)</li>
    <li><I>Debugger:Recorder</I>. Changed register-recording errors to go to log only, not popup. (GP-4305)</li>
    <li><I>Decompiler</I>. The Decompiler will now convert an indirect branch into a return operation if the branch target  can be traced to the formal return address storage location. (GP-4226)</li>
    <li><I>Decompiler</I>. Fixed bug causing <em>"Could not find op at target address"</em> exception when applying <span class="gcode">SwitchOverride</span> script. (GP-4314)</li>
    <li><I>Decompiler</I>. Fixed bug that could cause the Decompiler display to drop characters with a multi-byte UTF8 encoding. (GP-4360)</li>
    <li><I>Function Compare</I>. Corrected handling of thunked functions in the <span class="gtitle">Compare Matching Callees</span> action. (GP-4354, Issue #6159)</li>
    <li><I>GUI</I>. Fixed an <span class="gcode">IllegalArgumentException</span> that occurred when trying to expand data over a selection in the Listing that spanned addresses from multiple address spaces. (GP-701)</li>
    <li><I>GUI</I>. Fixed screen reader support of tooltips by using the lower-case html tag; some readers could not process an upper-case tag. (GP-4296, Issue #6176)</li>
    <li><I>GUI</I>. Fixed Data Types tree broken <span class="gcode">Cut</span> operation when the tree is filtered. (GP-4373, Issue #6137)</li>
    <li><I>GUI</I>. Fixed Structure Editor exception when searching with some columns removed. (GP-4426)</li>
    <li><I>Headless</I>. Fixed exception looking for extensions when running Headless Ghidra using the single Ghidra Jar mode. (GP-4294, Issue #6178)</li>
    <li><I>Importer</I>. Fixed an uncaught <span class="gcode">InvalidPathException</span> that could occur when loading libraries during import. (GP-4326, Issue #5894)</li>
    <li><I>Importer:COFF</I>. Fixed an <span class="gcode">EOFException</span> in the CoffLoader that could occur when parsing symbols. (GP-4344, Issue #6236)</li>
    <li><I>Importer:Mach-O</I>. The <span class="gcode">dyld_shared_cache</span> loader no longer throws an exception when importing newer versions that use <span class="gcode">dyld_cache_slide_info5</span>. (GP-4457)</li>
    <li><I>Memory</I>. Fixed an issue with the GUI sometimes showing incorrect file byte offsets for memory blocks that have been joined. (GP-4357)</li>
    <li><I>Processors</I>. Fixed AARCH64 instructions which could overwrite source registers during reads (<span class="gcode">ldaxp</span>, <span class="gcode">ldnp</span>, <span class="gcode">ldp</span>, <span class="gcode">ldpsw</span>, <span class="gcode">ldxp</span>). (GP-3851, Issue #5791)</li>
    <li><I>Processors</I>. Fixed 6809 <span class="gcode">clr</span> instruction not clearing the carry flag. (GP-3889, Issue #5838)</li>
    <li><I>Processors</I>. Fixed several ARM instructions which could potentially overwrite a source register before reading. (GP-3892, Issue #5822)</li>
    <li><I>Processors</I>. Fixed Z80 8-bit <span class="gcode">INC</span> instructions' setting of the carry flag. (GP-4273, Issue #2247, #2277)</li>
    <li><I>Processors</I>. Improved Tricore calling conventions. (GP-4319, Issue #5757)</li>
    <li><I>Processors</I>. Corrected semantics for Tricore <span class="gcode">dextr</span> instruction. (GP-4418, Issue #5756, #6303)</li>
    <li><I>Processors</I>. Fixed semantics of PowerPC <span class="gcode">lwax</span> instruction. (GP-4419)</li>
    <li><I>Version Tracking</I>. Fixed broken Version Tracking tag filter. (GP-4336)</li>
    <li><I>Version Tracking</I>. Fixed <span class="gcode">MemoryAccessException</span> in Version Tracking Data Correlator when data is partially contained in uninitialized memory. (GP-4339, Issue #6238)</li>
</ul>
</blockquote>

<H1 align="center">Ghidra 11.0.1 Change History (January 2024)</H1>
<blockquote><p><u><B>Improvements</B></u></p>
<ul>
    <li><I>BSim</I>. The <span class="gcode">make-postgresql.sh</span> script now uses the <span class="gcode">uname</span> command instead of the <span class="gcode">arch</span> command to increase system compatibility. (GP-4174, Issue #6051)</li>
    <li><I>Decompiler</I>. The Decompiler has been improved to recognize a broader class of boolean expressions when identifying and collapsing duplicate predicates.  An emphasis was given to ARM executables for this change. (GP-3941, Issue #5611)</li>
</ul>
</blockquote>
<blockquote><p><u><B>Bugs</B></u></p>
<ul>
    <li><I>Analysis</I>. Fixed <span class="gcode">IndexOutOfBoundsException</span> when decompiling AARCH64 functions with empty structure parameters. (GP-4169, Issue #6047, #6068, #6120)</li>
    <li><I>BSim</I>. Modified <span class="gcode">bsim</span> and <span class="gcode">bsim_ctl</span> command line option specification to use the form <span class="gcode">--option value</span> or <span class="gcode">--option=value</span> instead of <span class="gcode">option=value</span>.  Also corrected some bugs associated with command processing. (GP-4173, Issue #6054)</li>
    <li><I>Data</I>. Corrected default reference creation for pointers added to byte-mapped memory blocks when a valid address can be produced. (GP-4203, Issue #6081)</li>
    <li><I>Debugger:Agents</I>. Trace RMI clients are now included in the distribution. (GP-4198)</li>
    <li><I>Debugger:Listing</I>. Fixed <span class="gcode">NullPointerException</span> in <span class="gcode">TraceDisassembleCommand</span>. (GP-4257)</li>
    <li><I>Decompiler</I>. Fixed rare bug that could cause the Decompiler to crash during construction of Static Single Assignment (SSA) form. (GP-4201, Issue #6034)</li>
    <li><I>Function</I>. Corrected issues related to Function custom storage transition when auto-void-return-storage is used.  This situation can occur when the Rust calling convention spec-extension is used. (GP-4234)</li>
    <li><I>Function Compare</I>. Fixed bug causing an <span class="gcode">IndexOutOfBoundsException</span> in the <span class="gtitle">Decompiler Diff View</span> panel when comparing functions. (GP-4253)</li>
    <li><I>Importer:ELF</I>. Corrected x86-64 ELF GOT allocation for object module import for <span class="gcode">R_X86_64_GOTPCRELX</span> and <span class="gcode">R_X86_64_REX_GOTPCRELX</span> relocations. (GP-4228)</li>
    <li><I>Importer:ELF</I>. Corrected ELF x86-64 import error affecting <span class="gcode">*.o</span> files with the reported error <em>"GLOBAL_OFFSET_TABLE already allocated"</em>. (GP-4265)</li>
    <li><I>Importer:PE</I>. The PE loader can now loader PE files with an <span class="gcode">OptionalHeader.Magic</span> value of 0. (GP-4215, Issue #6093)</li>
    <li><I>Processors</I>. Fixed issues with HC05/HC08 processors including invalid registers and addressing modes. (GP-3181, Issue #4444)</li>
    <li><I>Processors</I>. Fixed issue with PowerPC VLE branch instructions not displaying the <span class="gcode">cr</span> register used. (GP-3787, Issue #5246)</li>
    <li><I>Processors</I>. Fixed issue with PowerPC VLE load/store instructions showing incorrect index. (GP-3788, Issue #5245)</li>
    <li><I>Processors</I>. Moved several PowerPC 4xx instructions to 4xx-only processor module. (GP-3789, Issue #5243)</li>
    <li><I>Processors</I>. Corrected address calculation for HCS12 <span class="gcode">call</span> instructions referencing the <span class="gcode">PPAGE</span> register. (GP-4104)</li>
    <li><I>Processors</I>. Added support for the x86 <span class="gcode">MOVDIR64B</span> instruction. (GP-4105, Issue #5997)</li>
    <li><I>Processors</I>. Corrected Loongarch CSR register list and added <span class="gcode">csr77</span>. (GP-4163, Issue #6033)</li>
    <li><I>Processors</I>. Fixed addresses for Tricore TC176x <span class="gcode">CAN_MO</span> registers. (GP-4204, Issue #5712)</li>
    <li><I>Processors</I>. Renamed pcodeops for x86 <span class="gcode">fbstp</span> and <span class="gcode">fbld</span> instructions. (GP-4249, Issue #2426)</li>
    <li><I>Version Tracking</I>. Fixed <span class="gcode">NullPointerException</span> in Auto Version Tracking implied-match creation. (GP-4268)</li>
</ul>
</blockquote>

<H1 align="center">Ghidra 11.0 Change History (December 2023)</H1>
<blockquote><p><u><B>New Features</B></u></p>
<ul>
    <li><I>Analysis</I>. Added initial Rust support, including the handling of mangled names and calling conventions. (GP-2412)</li>
    <li><I>BSim</I>. Introduced BSim support (see <span class="gcode">docs/GhidraClass/BSim/</span>). (GP-4009)</li>
    <li><I>Calling Conventions</I>. Added support for the <span class="gcode">Indirect result location register</span> for ARM64 calling conventions. (GP-3938, Issue #951)</li>
    <li><I>CodeBrowser</I>. Added a right-click <span class="gtitle">Copy</span> action in the CodeBrowser's Listing that copies a <em>Local</em> or <em>Shared</em> <span class="gcode">GhidraURL</span> to the program. The <span class="gcode">GhidraURL</span> points to the specific address at which the cursor is located within the program. (GP-3626)</li>
    <li><I>Data Types</I>. Added <span class="gtitle">Search -> For Encoded Strings...</span> dialog that simplifies finding and creating strings with various charsets and alphabets. (GP-2628, Issue #1582, #2106)</li>
    <li><I>Debugger:Breakpoints</I>. Added breakpoint indicators to Function Graph when active in Debugger. (GP-2737, Issue #5532)</li>
    <li><I>Debugger:dbgeng.dll</I>. Implemented Trace RMI connector/plugin for the dbgeng.dll. (GP-3754)</li>
    <li><I>Debugger:dbgeng.dll</I>. Introduced Trace RMI launch script for dbgeng.dll. (GP-3823)</li>
    <li><I>Debugger:GDB</I>. Introduced launchers for Debugger targets using new Trace RMI framework.  Introduced Trace RMI launch script for GDB. (GP-3818)</li>
    <li><I>Debugger:Targets</I>. API: Added <span class="gcode">Target</span> interface to abstract <span class="gcode">TraceRecorder</span> and <span class="gcode">TraceRmi</span>. (GP-2740)</li>
    <li><I>Debugger:Targets</I>. Created <span class="gtitle">Connections</span> panel for Trace RMI. (GP-3836)</li>
    <li><I>FileSystems</I>. Added a <span class="gcode">GFileSystem</span> supporting the CaRT file format. (GP-3748, Issue #5568)</li>
    <li><I>GhidraGo</I>. Implemented GhidraGo, an experimental feature that, when enabled, causes Ghidra to listen for GhidraURLs. The only supported GhidraURLs for GhidraGo currently link to a Ghidra DomainFile handled by the CodeBrowser. The readme for GhidraGo includes instructions on setting up a protocol handler for GhidraURLs. GhidraGo will open Ghidra if a Ghidra is not already running, but Ghidra must be configured to listen (i.e., it has the GhidraGo plugin enabled). (GP-2774)</li>
    <li><I>GUI</I>. Added <span class="gtitle">Select -> Create Table From Ranges</span> action to create a table based on the address ranges in a selection. (GP-2297)</li>
    <li><I>GUI</I>. Added a new <span class="gcode">GTree</span> filter setting that allows users to filter on the node's path. (GP-2419)</li>
    <li><I>Importer:Mach-O</I>. <span class="gcode">dyld_shared_cache</span> components extracted from Ghidra's <span class="gcode">DyldCacheFileSystem</span> can now be added together on-demand with the <span class="gtitle">Add To Program</span> feature.  Broken references can be automatically resolved by right-clicking on them and clicking <span class="gtitle">References -> Add To Program</span>. (GP-3753, Issue #5023)</li>
    <li><I>Processors</I>. Added support for the Loongson processor architecture. (GP-3211, Issue #5083)</li>
    <li><I>Version Tracking</I>. Added a new Version Tracking correlator based on BSim function similarity. (GP-4076)</li>
</ul>
</blockquote>
<blockquote><p><u><B>Improvements</B></u></p>
<ul>
    <li><I>Analysis</I>. Golang improvements:  Added the <span class="gtitle">Golang String Analyzer</span> that finds and marks up Golang strings.  Improved Golang type and interface method markup.  Improved Golang function parameter recovery.  Using Golang package information to organize Golang type and symbol elements into namespaces. Using Golang run time type information to override the types of objects that are created by calls to malloc-like built-in functions. (GP-2109)</li>
    <li><I>Analysis</I>. Made minor fixes to ARM aggressive instruction finder for stack trace and speed improvement. (GP-3855)</li>
    <li><I>API</I>. Added a program caching system for use by clients that want to open programs, do some work, and then close them without them appearing in the tool. Prior to this, all programs that were opened were kept open by the tool until the user manually closed them. (GP-3979)</li>
    <li><I>API</I>. Updated <span class="gcode">ApplyFunctionSignatureCmd</span> and <span class="gcode">FunctionUtility.updateFunction</span> to optionally allow all applied composites to be cleaned (i.e., force to not-yet-defined state) before being applied.  In addition, a datatype conflict handler may now be specified which can control how conflicts of applied datatypes should be handled. (GP-4051)</li>
    <li><I>Basic Infrastructure</I>. Upgraded to FlatLaf 3.2.1. (GP-3645, Issue #5539)</li>
    <li><I>Basic Infrastructure</I>. Upgraded Guava to 32.1.3. (GP-4053)</li>
    <li><I>Build</I>. The Ghidra Software Bill of Materials (SBOM) now includes entries for Ghidra's module jars.  Jar descriptions are also now provided when available. (GP-3824, Issue #5513)</li>
    <li><I>CodeCompare</I>. The Decompiler Diff View now supports searching via <span class="gcode">Ctrl-F</span>. (GP-4000)</li>
    <li><I>CodeCompare</I>. Fixed Function Comparison Window to not initially show the same function in both windows. (GP-4005)</li>
    <li><I>Debugger</I>. Introduced a plugin/service that supports proper Terminal Emulation (in contrast to the current Interpreter Panel plugin). (GP-1977)</li>
    <li><I>Debugger</I>. Added process name to Objects display. (GP-3895, Issue #5817)</li>
    <li><I>Debugger</I>. Added console display for exceptions. (GP-3896, Issue #5817)</li>
    <li><I>Debugger:Emulator</I>. Fixed issue starting the Emulator when the PC is in an overlay space. (GP-3904)</li>
    <li><I>Debugger:GDB</I>. Changed Trace RMI plugin for GDB to better obtain module base addresses. (GP-3725)</li>
    <li><I>Debugger:Registers</I>. Go-To actions from <span class="gtitle">Registers</span> panel now honor <span class="gtitle">Force Full View</span> setting from <span class="gtitle">Regions</span> panel. (GP-3886, Issue #5817)</li>
    <li><I>Decompiler</I>. Tokens labeling switch <span class="gcode">case</span> values in the Decompiler window now support navigation and hovering and can be used to rename or retype the switch variable. (GP-3680, Issue #5286)</li>
    <li><I>Decompiler</I>. Added toggle buttons to quickly change the <span class="gtitle">Eliminate unreachable code</span> and <span class="gtitle">Respect readonly flags</span> Decompiler settings. These settings are local to the Decompiler view and will not persist in the tool. (GP-3919)</li>
    <li><I>Decompiler</I>. Added formatting options for braces, <span class="gcode">&lbrace;</span> and <span class="gcode">&rbrace;</span>, in Decompiler output. (GP-3965, Issue #1240, #1937, #1938, #4914, #81)</li>
    <li><I>Demangler</I>. Updated the GNU Demangler binary used by Ghidra to version 2.41. (GP-3577)</li>
    <li><I>Demangler</I>. Revised signature source type applied by GNU demanglers to <span class="gcode">ANALYSIS</span> instead of <span class="gcode">IMPORTED</span>. (GP-4139)</li>
    <li><I>Exporter</I>. The C/C++ exporter now includes equate definitions if data types are being emitted. (GP-3010, Issue #4878)</li>
    <li><I>Extensions</I>. Added a classpath isolation option for Extensions (settable in <span class="gcode">launch.properties</span>). (GP-3623)</li>
    <li><I>FileSystems</I>. The <span class="gcode">dyld_shared_cache</span> filesystem can now extract files for stubs and standalone data. (GP-3860)</li>
    <li><I>GUI</I>. Updated the tool windows to remember when they are fully maximized. (GP-2840, Issue #293, #3788)</li>
    <li><I>GUI</I>. Updated data type tooltips and previews to show size in hex as well as decimal. (GP-3763, Issue #5682)</li>
    <li><I>GUI</I>. Added <span class="gtitle">Collapse</span> and <span class="gtitle">Expand</span> actions to trees. (GP-3812, Issue #5731)</li>
    <li><I>GUI</I>. Added <span class="gcode">askValues()</span> method to <span class="gcode">GhidraScripts</span> which allows the script to show a dialog for entering multiple values with a single dialog. (GP-3924)</li>
    <li><I>GUI</I>. Fixed issue with program graph issuing location events in response to receiving location events. (GP-4021)</li>
    <li><I>Importer</I>. Improved library-import log messages. (GP-3910)</li>
    <li><I>Importer:ELF</I>. Completed additional changes to ELF Header code to eliminate unsupported mutability. (GP-3620)</li>
    <li><I>Importer:Mach-O</I>. When loading <span class="gtitle">System Libraries From Disk</span> on macOS, the dyld_shared_cache will be searched for in more default locations. (GP-3909)</li>
    <li><I>Importer:Mach-O</I>. The MachoLoader now uses binding information (if present) to associate libraries with imported symbol name without the need for those libraries to be already present/loaded in the project. (GP-3912)</li>
    <li><I>Importer:Mach-O</I>. The MachoLoader can now load binaries with obfuscated segment and section names. (GP-3926, Issue #3876)</li>
    <li><I>Languages</I>. Removed use of PC as having a valid value in SuperH and M68000. (GP-4049, Issue #5891)</li>
    <li><I>Listing</I>. Added options for disabling various EOL Auto-Comments. (GP-3531)</li>
    <li><I>Listing</I>. Corrected operand markup of offcut instruction references which failed to respect the <span class="gtitle">Display Namespace</span> operand field option. (GP-3985, Issue #5886)</li>
    <li><I>Memory</I>. Updated overlay address space support to allow multiple memory blocks to reside within a single overlay space. (GP-3903)</li>
    <li><I>PDB</I>. Changed the PDB data types processing to use a resolve-as-you-go model, eliminating the dependency graph and the need for holding onto the PDB types within the processing model.  The benefits of this change are being made available by other improvements.  In addition, changes have been made to improve the accuracy of some data types. (GP-3715)</li>
    <li><I>PDB</I>. In order to reduce memory consumption, modified PdbReader to load certain components and data structures only when needed and provided some iterators to consumers such as PDB Universal Analyzer. (GP-3995)</li>
    <li><I>Processors</I>. Added language module for the Tensilica Xtensa processor. (GP-1062, Issue #1407, #5442)</li>
    <li><I>SARIF</I>. Added support for SARIF data export/import. (GP-3832)</li>
    <li><I>Version Tracking</I>. Updated <span class="gcode">AutoVersionTrackingScript</span> to create implied matches if option is chosen by the user. (GP-3765)</li>
    <li><I>Version Tracking</I>. Improved and sped up the <span class="gcode">AutoVersionTracking</span> algorithm to determine and apply good matches from the possible matches returned from the <span class="gcode">DuplicateFunctionMatchCorrelator</span>. (GP-3854, Issue #5857)</li>
    <li><I>Version Tracking</I>. Added numerous options to Auto Version Tracking that can change which correlators are used and control their individual options. (GP-3934)</li>
    <li><I>Version Tracking</I>. Auto Version Tracking now applies implied matches if the minimum number of votes and maximum number of conflicts conditions are met, as determined by the chosen options. (GP-3953)</li>
    <li><I>Version Tracking</I>. Updated Auto Version Tracking to check related associations for already-accepted matches before accepting new matches. (GP-4008, Issue #4875)</li>
    <li><I>Version Tracking</I>. Improved default Version Tracking session name generated by new session wizard. (GP-4091)</li>
</ul>
</blockquote>
<blockquote><p><u><B>Bugs</B></u></p>
<ul>
    <li><I>Analysis</I>. Fixed <span class="gcode">StackOverflowError</span> encountered when processing self-referencing Golang slices. (GP-3906, Issue #5847)</li>
    <li><I>Analysis</I>. Fixed function body computation for functions with instructions that branch into delay slots; for example, the Fujitsu FR processor.  This affects both function creation and the computation of an Undefined Function for the Decompiler when no function is currently defined. (GP-3962, Issue #5866)</li>
    <li><I>Analysis</I>. Fixed evaluator check before using it in constant analysis. (GP-3970)</li>
    <li><I>Build</I>. Fixed <span class="gcode">nodepJar</span> task dependencies for Gradle 8. (GP-3977, Issue #5902)</li>
    <li><I>Data Types</I>. Corrected self-referencing data type resolution issue for function definitions which could result in datatype errors. (GP-4078, Issue #5927)</li>
    <li><I>Debugger</I>. Fixed when <span class="gtitle">Control Target</span> can be selected. (GP-4099)</li>
    <li><I>Debugger:Agents</I>. Fixed GADP agent launch scripts to pass arguments through. (GP-4132, Issue #6016)</li>
    <li><I>Debugger:dbgeng.dll</I>. Fixed an error that resulted in quotes being stripped from command-line arguments for dbgeng/dbgmodel. (GP-3846, Issue #5789)</li>
    <li><I>Debugger:dbgeng.dll</I>. Created better updating strategy for dbgeng/model memory. (GP-3899, Issue #5817)</li>
    <li><I>Debugger:Emulator</I>. Fixed issue with resuming after performing p-code steps in the Emulator. (GP-3706)</li>
    <li><I>Debugger:GDB</I>. Made fixes in preparation for changes coming in gdb-14. (GP-3690)</li>
    <li><I>Debugger:GDB</I>. Fixed line ending for Cygwin GDB. (GP-3825, Issue #5755)</li>
    <li><I>Debugger:Objects</I>. Fixed Elements table in Model provider to display array contents. (GP-3932)</li>
    <li><I>Debugger:Registers</I>. Fixed copied values from <span class="gtitle">Registers</span> panel to conform to display settings. (GP-3874, Issue #5820)</li>
    <li><I>Decompiler</I>. Fixed bug in conditional constant propagation that could affect switch recovery. (GP-3840, Issue #5514)</li>
    <li><I>Decompiler</I>. Fixed improper rendering of expressions involving pointer-to-array data-types in Decompiler output. (GP-3842, Issue #5591)</li>
    <li><I>Decompiler</I>. Fixed bug causing <em>"Could not finish collapsing block structure"</em> exceptions. (GP-3911)</li>
    <li><I>Decompiler</I>. Fixed <em>"&lt;unionfacetsymbol&gt; does not have a union type"</em> exception caused by deleting a union data-type. (GP-3942, Issue #5636)</li>
    <li><I>Decompiler</I>. Fixed bug in the brace-highlighting action for the Decompiler window that could cause it not to be able to find matching braces. (GP-3945, Issue #5643)</li>
    <li><I>Decompiler</I>. Fixed bug in Decompiler that could cause crashes when analyzing NaN operations. (GP-3981)</li>
    <li><I>Decompiler</I>. Fixed a bug that causes the Decompiler to fail on some systems with a <em>"Datatype must have a valid id"</em> exception. (GP-4020)</li>
    <li><I>Decompiler</I>. Fixed an infinite loop in the Decompiler caused by small parameters getting passed to subfunctions via larger registers containing stale values in their upper bytes. (GP-4102, Issue #5934)</li>
    <li><I>Decompiler</I>. Fixed a bug that could cause the Decompiler to crash when printing pieces of a dynamic symbol. (GP-4119, Issue #6005)</li>
    <li><I>Demangler</I>. Fixed GNU Demangler analysis live-lock issue. (GP-4071, Issue #5987)</li>
    <li><I>Documentation</I>. Fixed field constraint example in the Sleigh documentation. (GP-4046, Issue #5933)</li>
    <li><I>Eclipse Integration</I>. Ghidra can now launch Eclipse Ubuntu snap installations from the Script Manager. (GP-3473)</li>
    <li><I>Eclipse Integration</I>. The GhidraDev Eclipse plugin now prevents unsupported versions of PyDev from being used.  Supported versions are 6.3.1 - 9.3.0.  PyDev 10.0 and later no longer support Python 2. (GP-4062, Issue #5980)</li>
    <li><I>Eclipse Integration</I>. The GhidraDev Eclipse plugin no longer throws an <span class="gcode">IOException</span> when performing a <span class="gtitle">Link Ghidra</span> action on a Ghidra project whose original Ghidra installation moved. (GP-4063, Issue #5981)</li>
    <li><I>Exporter</I>. Proper C-syntax is now used on structs exported to a header file when they contain a pointer to an array field. (GP-3608, Issue #5248)</li>
    <li><I>GUI</I>. Fixed the Data Types <span class="gtitle">Exact Match</span> filter to not include the archive name. (GP-3764, Issue #5685)</li>
    <li><I>GUI</I>. Updated <span class="gcode">GTableHeaderRenderer</span> to fix an incorrect cast to <span class="gcode">Component</span>. (GP-3819, Issue #5539)</li>
    <li><I>GUI</I>. Fixed bug in the Find Dialog that caused incorrect text to be selected when pressing <span class="gcode">Enter</span> for a previous match. (GP-3856)</li>
    <li><I>GUI</I>. Fixed <span class="gcode">JTextArea</span> not responding to theme font changes. (GP-3908)</li>
    <li><I>GUI</I>. Fixed incorrect Version Tracking foreground color in the Markup Items Table. (GP-3933, Issue #5865)</li>
    <li><I>GUI</I>. Updated how the tool saves window size information to allow better toggling between full-screen modes. (GP-3958, Issue #5879, #5890)</li>
    <li><I>GUI</I>. Fixed the Listing's Auto Comment color for the CDE/Motif theme. (GP-3959, Issue #5903)</li>
    <li><I>GUI</I>. Fixed Structure Editor bugs.  Also updated the search to use the default field name as part of the search-matching. (GP-3967, Issue #5715)</li>
    <li><I>GUI</I>. Fixed an issue in the Function Editor dialog that caused incorrect parameter values to be assigned when cancelling an edit. (GP-4041)</li>
    <li><I>GUI</I>. Updated the Note Bookmark dialog to allow users to press <span class="gcode">Enter</span> to close the dialog when the Category field is focused. (GP-4048, Issue #5962)</li>
    <li><I>GUI</I>. Fixed an issue that caused importing a file via drag-and-drop to silently fail on some Linux distributions. (GP-4066)</li>
    <li><I>GUI</I>. Fixed an <span class="gcode">IndexOutOfBoundsException</span> that sometimes occurred while adding new entries to the Bundle Manager table or while opening a CodeBrowser tool that included an open Bundle Manager window. (GP-4075, Issue #5956)</li>
    <li><I>Headless</I>. The Headless Analyzer can now recurse into supported <span class="gcode">GFileSystem</span> container files when a recursion depth of one or more is specified on the command line. (GP-3273, Issue #5167)</li>
    <li><I>Importer</I>. Importing libraries that are referenced by absolute path (such as with Mach-O) now get saved to the project with their folder structure intact.  This fixes a potential <span class="gcode">DuplicateKeyException</span> that could occur when using a <span class="gtitle">Recursive Library Load Depth</span> greater than <span class="gcode">1</span>, and removes any ambiguity that could occur when linking a program to its libraries. (GP-3922)</li>
    <li><I>Importer</I>. Fixed an uncaught <span class="gcode">InvalidPathException</span> that could occur when loading libraries during import. (GP-4050, Issue #5894)</li>
    <li><I>Importer:ELF</I>. Corrected ELF object module GOT allocation for x86-64 object modules during relocation processing. (GP-4118, Issue #5961)</li>
    <li><I>Importer:Mach-O</I>. The <span class="gcode">MachoLoader</span> now creates thunks on stubs. (GP-3248, Issue #3146)</li>
    <li><I>Importer:PE</I>. Fixed an exception that could sometimes occur when parsing PE files containing debug line number information. (GP-3963, Issue #5899)</li>
    <li><I>Languages</I>. Corrected MIPS pcode for <span class="gcode">di</span> and <span class="gcode">ei</span> instructions. (GP-3875)</li>
    <li><I>Languages</I>. Corrected stack pointer update in <span class="gcode">alloca_probe</span> x64 windows callfixup. (GP-3915, Issue #5844)</li>
    <li><I>Languages</I>. Updated x86 register addressing for <span class="gcode">ST</span> and <span class="gcode">MM</span> registers to achieve proper overlap.  The upper 16-bits of the <span class="gcode">ST</span> registers still remain unaffected by MMX instructions which write to the <span class="gcode">MM</span> registers. (GP-3956)</li>
    <li><I>Multi-User</I>. Corrected potential <span class="gcode">NullPointerException</span> in Ghidra Server command proceesor. (GP-4056, Issue #5974)</li>
    <li><I>PDB</I>. Fixed memory performance issue created in 10.4. (GP-3890)</li>
    <li><I>Processors</I>. Implemented x86 <span class="gcode">FINTRZ</span> instruction. (GP-3387, Issue #5205)</li>
    <li><I>Processors</I>. Corrected x86 <span class="gcode">POP</span> instructions with operands that use the stack pointer. (GP-3677, Issue #4282)</li>
    <li><I>Processors</I>. Fixed missing ARM <span class="gcode">cbz</span> instruction in the manual index file. (GP-3724)</li>
    <li><I>Processors</I>. Added test-register support back into the x86 processor module. (GP-3784, Issue #5662)</li>
    <li><I>Processors</I>. Fixed issue with 6x09 processor module <span class="gcode">STU</span> instruction storing the <span class="gcode">X</span> register instead of the <span class="gcode">U</span> register. (GP-3786, Issue #5671)</li>
    <li><I>Processors</I>. Added ELF relocation support to Loongarch processor module (GP-3804)</li>
    <li><I>Processors</I>. Replaced or implemented count-leading-zeroes and count-leading-ones instructions with proper pcode operator in several languages. (GP-3879, Issue #5790)</li>
    <li><I>Processors</I>. Changed MIPS <span class="gcode">TEQ zero, zero</span> into a trap, always-goto flow. (GP-3948)</li>
    <li><I>Processors</I>. Several fixes for some PowerPC VLE instructions (GP-3999, Issue #2843)</li>
    <li><I>Processors</I>. Added the x86 MMX register <span class="gcode">MXCSR</span> to the compiler global list so that manipulations persist in the decompiled output. (GP-4018)</li>
    <li><I>Processors</I>. Fixed RISC-V custom-0 instruction patterns. (GP-4047, Issue #5932)</li>
    <li><I>Processors</I>. Fixed PIC24 <span class="gcode">DOEND</span> register offset (GP-4054, Issue #5213)</li>
    <li><I>Processors</I>. Minor fix for the AVR8 <span class="gcode">DES</span> instruction semantics. (GP-4055, Issue #5235)</li>
    <li><I>Project</I>. Corrected issue with <span class="gcode">ProjectLocator</span> when using projects located in root directory. (GP-3914, Issue #5802)</li>
    <li><I>Scripting</I>. <span class="gcode">FixOldSTVariableStorageScript.java</span> Ghidra script has been made available for users to run against x86 Programs created prior to Ghidra 10.0.3.  This script will fixup <span class="gcode">ST0... ST7</span> variable storage addresses which were not properly migrated during an x86 language revision. (GP-3949, Issue #5640)</li>
    <li><I>Search</I>. Fixed incorrect template implementation of <span class="gcode">GenericByteSequencePattern<span class="gcode">. (GP-4024)</li>
    <li><I>Sleigh</I>. Fixed a bug in the Sleigh compiler preventing the declaration of bit-range symbols when their size was not a multiple of 8 bits. (GP-8, Issue #1144, #660)</li>
    <li><I>Sleigh</I>. Added pure 32-bit PowerPC e500mc processor variant (GP-3068)</li>
    <li><I>Sleigh</I>. Fixed stacktrace when a pcode pseudoOp has more than eight parameters. (GP-3986)</li>
    <li><I>Version Tracking</I>. Fixed Version Tracking <span class="gtitle">Undo</span> issue where running a correlator and accepting matches then undoing the results and then rerunning the correlator resulted in incorrectly blocked matches. (GP-3827)</li>
    <li><I>Version Tracking</I>. Fixed bug in Version Tracking matches table that prevented saved filters from being applied. (GP-3901)</li>
</ul>
</blockquote>

<H1 align="center">Ghidra 10.4 Change History (September 2023)</H1>
<blockquote><p><u><B>New Features</B></u></p>
<ul>
    <li><I>Analysis</I>. Swift Type Metadata is now marked up. (GP-2085)</li>
    <li><I>FileSystems</I>. Added cramfs support. (GP-3328)</li>
    <li><I>FileSystems</I>. The File System Browser now supports the <span class="gtitle">Add To Program</span> action. (GP-3730)</li>
    <li><I>Importer</I>. Created parsers and analyzers for Device Tree Blob (DTB) and Flattened Device Tree (FDT) binaries. (GP-1436)</li>
    <li><I>Listing</I>. Added ability to reduce an instruction's length to facilitate overlapping instructions.  This can now be accomplished by specifying an instruction length override on the first instruction and disassembling the bytes which follow it.  The need for this has been observed with x86 where there may be a flow around a <span class="gcode">LOCK</span> prefix byte. (GP-3256)</li>
</ul>
</blockquote>
<blockquote><p><u><B>Improvements</B></u></p>
<ul>
    <li><I>Analysis</I>. Added support for Golang 1.17 binaries. (GP-3288)</li>
    <li><I>Analysis</I>. Added call fixups for GCC's spectre-mitigating thunks in x86 and x64. (GP-3320, Issue #299)</li>
    <li><I>Analysis</I>. Added support for Golang 1.19 and 1.20. (GP-3504)</li>
    <li><I>Analysis</I>. Developed additional ARM function start/end patterns. (GP-3805)</li>
    <li><I>Analysis</I>. Fixed PPC Analyzer to create the correct size undefined data type for a read/write reference. (GP-3845, Issue #5425)</li>
    <li><I>API</I>. <span class="gtitle">Undo</span>/<span class="gtitle">Redo</span> now show lists of transactions that can be undone or redone. (GP-3521)</li>
    <li><I>Build</I>. Fixed the <span class="gcode">buildHelp</span> gradle task to correctly check for up-to-date inputs. (GP-3430)</li>
    <li><I>Data Types</I>. Added ability to establish source archive association when non-sourced data type dependencies get copied into an archive during a commit operation. (GP-3796, Issue #5675)</li>
    <li><I>Debugger</I>. Fixed <span class="gtitle">Copy Into New Program</span> action to use Dynamic Listing for its default context. This means the Dynamic Listing does not have to have focus for those actions to be enabled. (GP-1528)</li>
    <li><I>Debugger:Modules</I>. Changed mapper to use proper local <span class="gcode">ghidra:&sol;&sol;</span> URLs. No more "!" in them. (GP-3695)</li>
    <li><I>Debugger:Trace</I>. Removed the <span class="gcode">TraceFunction</span> part of the Trace API. (GP-3351)</li>
    <li><I>Decompiler</I>. Removed the limitation preventing the Decompiler from analyzing functions where the <span class="gcode">this</span> parameter refers to a placeholder class structure. (GP-3590, Issue #5403, #5475)</li>
    <li><I>Decompiler</I>. Added Decompiler support for return value storage at an explicit stack offset relative to the callee's stack pointer. (GP-3613, Issue #1962)</li>
    <li><I>Decompiler</I>. Added a <span class="gcode">callfixup</span> for <span class="gcode">__RTC_CheckEsp</span> in <span class="gcode">x86win.cspec</span> and updated <span class="gcode">GraphASTScript.java</span>. (GP-3752, Issue #5657)</li>
    <li><I>FileSystems</I>. Libraries extracted from the <span class="gcode">dyld_shared_cache</span> filesystem now have chained fixups applied. (GP-1574)</li>
    <li><I>FileSystems</I>. Libraries extracted from the <span class="gcode">dyld_shared_cache</span> filesystem now contain an optimized <span class="gcode">__LINKEDIT</span> segment, resulting in a significantly smaller binary. (GP-3587, Issue #4175)</li>
    <li><I>FileSystems</I>. Libraries extracted from the <span class="gcode">dyld_shared_cache</span> filesystem now contain local symbol information, which reduces the occurrence of <span class="gcode">&lt;redacted&gt;</span> primary symbols. (GP-3728)</li>
    <li><I>GUI</I>. Added accessibility support to the FieldPanel component, which is the base component for the Listing, Byte Viewer, and Decompiler. (GP-2129)</li>
    <li><I>GUI</I>. Simplified the Listing's Plate Field word wrapping. (GP-3425, Issue #5299)</li>
    <li><I>GUI</I>. Added the <span class="gtitle">Address w/ Offset</span> Copy Special action. (GP-3515, Issue #5364)</li>
    <li><I>GUI</I>. Added a filter for the Memory Map provider table. (GP-3755)</li>
    <li><I>Importer:ELF</I>. Added support for ELF <span class="gcode">R_AARCH64_MOVW_UABS_Gn</span> relocations. (GP-3435, Issue #3545, #3546, #5292)</li>
    <li><I>Importer:Mach-O</I>. Libraries can now be loaded from both local directories and GFileSystems. This enables loading, for example, Mach-O libraries directly from within the dyld_shared_cache file(s). (GP-2277, Issue #4162)</li>
    <li><I>Importer:Mach-O</I>. Improved markup for Mach-O load command data. (GP-3565)</li>
    <li><I>Importer:Mach-O</I>. Added more options to the <span class="gcode">DyldCacheLoader</span> so its performance can be better controlled by the user. (GP-3566)</li>
    <li><I>Importer:Mach-O</I>. The <span class="gcode">MachoLoader</span> now supports threaded binding (<span class="gcode">BIND_OPCODE_THREADED</span>). (GP-3701, Issue #5558)</li>
    <li><I>Languages</I>. Updating the PowerPC index to reference the latest manuals. (GP-3296)</li>
    <li><I>PDB</I>. Improved disassembly and function creation in presence of non-returning functions. (GP-3604)</li>
    <li><I>Processors</I>. Added instruction manual indices for ColdFire instructions. (GP-3327)</li>
    <li><I>Processors</I>. Addressed unnecessary x86 <span class="gcode">LOAD</span> ops preventing certain decompiler transformations. (GP-3822, Issue #5433)</li>
    <li><I>Scripting</I>. Updated <span class="gcode">RecoverClassesFromRTTIScript</span> to improve class structure creation for GCC programs. (GP-3464, Issue #5642)</li>
    <li><I>Scripting</I>. Updated <span class="gcode">RecoverClassesFromRTTIScript</span> to make sure all class thiscall functions are using the class structure created by the script. (GP-3777)</li>
    <li><I>Sleigh</I>. Replaced implementations of <span class="gcode">_fxsave</span> and <span class="gcode">_fxsave64</span> with defined p-code ops in <span class="gcode">ia.sinc</span>. (GP-3733, Issue #5208)</li>
    <li><I>Version Tracking</I>. Changed Auto Version Tracking duplicate function match to not process overly large duplicate match sets that can be extremely time-consuming. (GP-3527)</li>
</ul>
</blockquote>
<blockquote><p><u><B>Bugs</B></u></p>
<ul>
    <li><I>Analysis</I>. Changed function body creation when functions overlap to favor contiguous functions.  Previously, overlapping functions bodies were arbitrary based on order of creation. (GP-2823)</li>
    <li><I>Analysis</I>. Allow values that have the low bit set to be pointers if they are at the top of a function on ARM and MIPS. (GP-3766)</li>
    <li><I>API</I>. Added Function body restrictions to ensure it is contained within a single address space. (GP-567, Issue #2577, #5051)</li>
    <li><I>API</I>. Fixed issue where front end plugins were not having their dispose methods called when exiting Ghidra (GP-3343)</li>
    <li><I>Data Types</I>. Fixed alignment of 8-byte datatypes for 32-bit Windows data organization. (GP-3449)</li>
    <li><I>Data Types</I>. Eliminated use of data type aligned-length when adding components to a non-packed structure.  This should allow arbitrary component placement when packing is disabled. (GP-3726, Issue #5602)</li>
    <li><I>Data Types</I>. Corrected problem with the decode of subnormal floating point values. (GP-3775, Issue #5647)</li>
    <li><I>Decompiler</I>. The Decompiler no longer automatically simplifies away code performing NaN tests. (GP-3019, Issue #4588)</li>
    <li><I>Decompiler</I>. Fixed a bug in the Decompiler where assignments to local variables on the stack could be incorrectly reordered before calls. (GP-3429, Issue #5237)</li>
    <li><I>Decompiler</I>. Fixed variable merging bug in the Decompiler that could cause <em>"Unable to merge address forced indirect"</em> exceptions. (GP-3682, Issue #5588)</li>
    <li><I>Decompiler</I>. Fixed bug causing segmentation faults in the Decompiler triggered by Golang binaries. (GP-3783)</li>
    <li><I>Demangler</I>. Fixed minor GNU Demangler parsing bug that caused <span class="gcode">&&</span> to get added to function pointers. (GP-3650)</li>
    <li><I>Eclipse Integration</I>. Exporting a Ghidra Module Extension with the GhidraDev Eclipse plugin produces an intermediate <span class="gcode">build</span> directory within the project. This build directory now gets automatically cleaned up to avoid Ghidra runtime/debugging issues. (GP-3523, Issue #5327)</li>
    <li><I>Eclipse Integration</I>. The Ghidra Front-End GUI now prevents installation of extension source (unbuilt) directories. (GP-3852)</li>
    <li><I>Framework</I>. Fixed issue preventing Enum Editor actions from appearing in the Key Bindings options. (GP-3708, Issue #5638, #5639)</li>
    <li><I>Graphing</I>. Changed graph DOT exporter to rename our <span class="gcode">Name</span> attribute to a <span class="gcode">label</span> attribute, which is what DOT graphs use for display. Also, cleaned up vertex label display when in <span class="gcode">compact</span> mode and added the vertex id in the tooltip. (GP-3779, Issue #5678)</li>
    <li><I>GUI</I>. The <span class="gtitle">Comments</span> dialog now uses the selected comment text when adding a new annotation. (GP-3560, Issue #5439)</li>
    <li><I>Importer</I>. User can now correctly <span class="gtitle">Add To Program</span> with Microsoft <span class="gcode">Module-definition (.def)</span> files.  Several parsing bugs with this file format were also fixed. (GP-3826, Issue #5676)</li>
    <li><I>Importer:ELF</I>. Made significant improvements to ELF RISCV relocation support. (GP-3707, Issue #3816)</li>
    <li><I>Importer:ELF</I>. Corrected ELF <span class="gcode">R_RISCV_RVC_BRANCH</span> relocation processing. (GP-3792, Issue #5701)</li>
    <li><I>Importer:ELF</I>. Updated ELF Loader to convert non-displayable ASCII symbol name characters to ASCII Control Characters (e.g., <span class="gcode">^A</span>) instead of discarding symbol with an error.  Import log will report use of modified name when this occurs. (GP-3793, Issue #5619)</li>
    <li><I>Importer:Mach-O</I>. Improved support for loading Apple watchOS binaries. (GP-3630)</li>
    <li><I>Misc</I>. Fixed bug in table sorting where data could be corrupted if the sort was cancelled before it completed. (GP-3685)</li>
    <li><I>Processors</I>. Fixed issue with M68000 reading from memory multiple times per instruction. (GP-3219, Issue #2492)</li>
    <li><I>Processors</I>. Fixed mnemonic for PowerPC VLE <code><b>e_sthu</b></code> instruction. (GP-3434, Issue #5247)</li>
    <li><I>ProgramDB</I>. Data may now be created in a Byte-Mapped Memory Block using a Dynamic datatype.  This was previously disallowed due to an ambiguous initialized-memory check. (GP-3208)</li>
    <li><I>Project</I>. Changed project data store close/dispose behavior to resolve issues with open programs getting disconnected by closing of associated project store.  Changed <span class="gcode">GhidraScript.askProgram</span> to always require proper use of <span class="gcode">Program.release(Object consumer)</span> by scripts which use it.  Script's failure to release a program will prevent proper resource disposal. (GP-3697)</li>
    <li><I>Scripting</I>. Fixed <span class="gcode">ShowConstUse</span> script back-tracking through <span class="gcode">MultiEqual</span> pcode operations to handle multiple inputs to the same location. (GP-3503, Issue #5242)</li>
    <li><I>Search</I>. Fixed <span class="gcode">findBytes()</span> to honor the search limit when used regular expressions. (GP-3797, Issue #5672)</li>
</ul>
</blockquote>

<H1 align="center">Ghidra 10.3.3 Change History (August 2023)</H1>
<blockquote><p><u><B>Improvements</B></u></p>
<ul>
    <li><I>Analysis</I>. Fixed potential infinite loop in clear flow and repair if the function found to be non-returning is cleared. (GP-3578)</li>
    <li><I>Debugger:Listing</I>. The items in the <span class="gtitle">Auto-Read Memory</span> drop-down menu are now consistently ordered. (GP-3721)</li>
    <li><I>Debugger:Modules</I>. Added a <span class="gtitle">Mapping</span> column in the <span class="gtitle">Modules</span> window. (GP-3436, Issue #5330)</li>
    <li><I>Decompiler</I>. Decompiler now prints Equate values using <span class="gcode">constant</span> syntax highlighting. (GP-3679, Issue #5059)</li>
    <li><I>GUI</I>. Updated the Enum Editor to trim whitespace in the name field. (GP-3762, Issue #5650, #5679)</li>
    <li><I>Languages</I>. Added Debugger GNU language mapping <span class="gcode">mips:3000</span> to the <span class="gcode">mips.ldefs</span> specification file in support of 32-bit MIPS processor (<em>default</em> variant). (GP-3453, Issue #5337)</li>
    <li><I>Version Tracking</I>. Improved Version Tracking function signature <span class="gtitle">Apply Markup</span> action to work correctly when both the source and destination functions use custom storage. (GP-3662, Issue #5559)</li>
</ul>
</blockquote>
<blockquote><p><u><B>Bugs</B></u></p>
<ul>
    <li><I>Analysis</I>. Fixed x86 <span class="gcode">CALL &lt;nextaddr&gt;; POP EBX</span> position-independent code issue that was replacing the branch with a data reference which caused bad code flow. (GP-3687)</li>
    <li><I>Data Types</I>. Corrected issue related to setting architecture immediately after data type archive creation where data types were added.  The architecture setting failed to be retained and the existing data types failed to be adjusted. (GP-3727)</li>
    <li><I>Debugger</I>. Fixed issue with default launcher command line when binary name contains spaces. (GP-3553, Issue #5460)</li>
    <li><I>Debugger:Agents</I>. Removed <span class="gcode">MODULE_[UN]LOADED</span> events (these duplicate <span class="gcode">elementsChanged</span> on the Modules node).  Fixed <span class="gcode">NullPointerException</span> log messages from library-load events in GDB connector. (GP-3666)</li>
    <li><I>Debugger:Emulator</I>. Fixed display of p-code op listing in P-code Stepper when using Dark Mode. (GP-3592)</li>
    <li><I>Debugger:Emulator</I>. Fixed issue launching emulator with certain architectures with multiple address spaces. (GP-3656, Issue #5556)</li>
    <li><I>Debugger:Emulator</I>. Fixed indirect branching issue when operand size doesn't match PC size. (GP-3700, Issue #5609)</li>
    <li><I>Debugger:GDB</I>. Using a better strategy for module base computation using memory mappings when available. (GP-2223, Issue #5284)</li>
    <li><I>Debugger:Listing</I>. Fixed issue with overlapping module and PC labels in Dynamic Listing and memory viewers. (GP-3469)</li>
    <li><I>Debugger:Listing</I>. Fixed hover in address field of Dynamic Listing with multiple address spaces. (GP-3661)</li>
    <li><I>Debugger:Listing</I>. Fixed issue where address-tracking drop-down cannot be accessed when certain watches are configured; e.g., <span class="gcode">(RSP+8)+8</span>. (GP-3720)</li>
    <li><I>Debugger:Modules</I>. Fixed issue using Debugger with programs in a shared project. (GP-3664, Issue #5585)</li>
    <li><I>Debugger:Watches</I>. Fixed bug where watches cannot be assigned a type without an active trace. (GP-3718)</li>
    <li><I>Decompiler</I>. Fixed a bug preventing the Decompiler from simplifying double-precision shifts. (GP-3688, Issue #5473)</li>
    <li><I>Decompiler</I>. The Decompiler no longer tries to infer a symbol reference for a constant if a function signature indicates the constant is not a pointer. (GP-3735)</li>
    <li><I>Emulator</I>. Fixed another context flow issue in the Emulator's decoder. (GP-3716)</li>
    <li><I>GUI</I>. Fixed the Flat Dark Theme color of the Version Tracking Matches table's filter field. (GP-3550, Issue #5560)</li>
    <li><I>GUI</I>. Fixed general Structure Editor bugs when using <span class="gcode">Tab</span> to navigate while editing. (GP-3647, Issue #5566)</li>
    <li><I>GUI</I>. Fixed broken table navigation in the Function Tags dialog. (GP-3683, Issue #5613)</li>
    <li><I>GUI</I>. Fixed incorrect rendering of delimiter fields in table filter options. (GP-3684, Issue #5614)</li>
    <li><I>GUI</I>. Fixed an exception in the Function Call Graph when using the <span class="gtitle">Start Fully Zoomed In</span> mode. (GP-3768)</li>
    <li><I>Headless</I>. Fixed several OSGi-related exceptions that could be thrown when running many instances of <span class="gcode">analyzeHeadless</span> in parallel. (GP-3653)</li>
    <li><I>Languages</I>. Fixed ARM <span class="gcode">vcvt</span> instruction semantics. (GP-3729)</li>
    <li><I>Languages</I>. Removed <span class="gcode">LDS/STS</span> instructions from AVR8 in preparation for AVRtiny support. (GP-3746, Issue #5231)</li>
    <li><I>Processors</I>. Fixed issue with 6809 <span class="gcode">pshu</span> sometimes pushing to the <span class="gcode">S</span> register. (GP-3556, Issue #5467)</li>
    <li><I>Processors</I>. Fixed regression in 6x09 compare instructions. (GP-3642)</li>
    <li><I>Processors</I>. Fixed instruction operand parsing for AARCH64 <span class="gcode">fcadd</span> and <span class="gcode">fcmla</span> instructions. (GP-3652, Issue #5428)</li>
    <li><I>Processors</I>. Fixed disassembly of x86 <span class="gcode">LIDT</span>, <span class="gcode">LGDT</span>, <span class="gcode">SIDT</span>, and <span class="gcode">SGDT</span> instructions. (GP-3655, Issue #5577)</li>
    <li><I>Scripting</I>. Fixed a bug that could result in the Python scripting environment using invalid script bundle paths. (GP-3619)</li>
</ul>
</blockquote>

<H1 align="center">Ghidra 10.3.2 Change History (July 2023)</H1>
<blockquote><p><u><B>Improvements</B></u></p>
<ul>
    <li><I>Debugger:Emulator</I>. Fixed bug when starting the Emulator for processors having small memory spaces. (GP-3437, Issue #5331)</li>
    <li><I>Extensions</I>. Updated Extension installation to allow users to bypass the version compatibility check. (GP-3466, Issue #1193)</li>
    <li><I>Importer:Mach-O</I>. The MachoLoader now supports the <span class="gcode">__chain_starts</span> section. (GP-3568)</li>
    <li><I>PDB</I>. Updated PDB maximum page size to 8 KB. (GP-3603)</li>
    <li><I>Scripting</I>. Added <span class="gcode">askPassword</span> method to <span class="gcode">GhidraScript</span> API. (GP-3295)</li>
</ul>
</blockquote>
<blockquote><p><u><B>Bugs</B></u></p>
<ul>
    <li><I>Analysis</I>. Corrected an issue which could result in a duplicated imported symbol within the EXTERNAL memory block for what should be a default thunk function. (GP-3302)</li>
    <li><I>Analysis</I>. Fixed problem with Branch/Return analysis infinite loop waffling on some ARM binaries. (GP-3582)</li>
    <li><I>Analysis</I>. Fixed creation of incorrect function bodies which included addresses with data from flow into non-disassembled code.  Also fixed PowerPC disassembly from computed flow in certain circumstances. (GP-3599, Issue #5441)</li>
    <li><I>Analysis</I>. Very large functions that run out of address space IDs used for tracking constants will now only log one error message. (GP-3605)</li>
    <li><I>API</I>. Corrected <span class="gcode">CreateFunctionCmd</span> issue which could fail with the <em>"Function body must contain the entrypoint"</em> error. (GP-3591, Issue #5412)</li>
    <li><I>CParser</I>. Allow <span class="gcode">pragma</span> keyword in more places, allow parentheses in <span class="gcode">#pragma</span>, and fixed silent parse failures. (GP-2808, Issue #4692, #5454)</li>
    <li><I>CParser</I>. Fixed CParser to handle multi-line <span class="gcode">#pragma</span> directives. (GP-3611, Issue #5524)</li>
    <li><I>CParser</I>. When using the CParser to parse header files directly into a program, the program's processor architecture is now used. (GP-3612, Issue #5502)</li>
    <li><I>Debugger</I>. Cleaned up old Troubleshooting entries in Help. (GP-3468)</li>
    <li><I>Debugger:Listing</I>. Fixed regression in dynamic disassembly of WoW64 targets. (GP-3583)</li>
    <li><I>Debugger:Stack</I>. Fixed various stability and error reporting issues with stack unwinding and runtime value hovers. (GP-3407, Issue #5332)</li>
    <li><I>Debugger:Stack</I>. Fixed several issues in Debugger/Emulator GUIs when using/emulating an architecture with a memory-mapped PC register. (GP-3572, Issue #5410)</li>
    <li><I>Debugger:Stack</I>. Fixed <span class="gcode">NullPointerException</span> when varnode has no high variable during stack unwinding. (GP-3576, Issue #5487)</li>
    <li><I>Debugger:Watches</I>. Fixed restoration of Watch DataType when it comes from the restored Trace. (GP-3588)</li>
    <li><I>Decompiler</I>. Fixed a bug in the Decompiler where combined constant assignments to an array or structure were incorrectly split out on big endian architectures. (GP-3609, Issue #5424)</li>
    <li><I>Emulator</I>. Fixed issue in Emulator's instruction decoder regarding context. (GP-3571)</li>
    <li><I>GUI</I>. Fixed exception when performing the <span class="gtitle">Convert to Class</span> action in the Symbol Tree while the tree had a filter applied. (GP-3589, Issue #5480)</li>
    <li><I>Importer:ELF</I>. Fixed incorrect error message during import regarding ELF build-ID length. (GP-3546)</li>
    <li><I>Importer:ELF</I>. Corrected exception and ELF GOT allocation issue which could prevent import of X86-64 object modules which contain GOT-based relocations (e.g., <span class="gcode">R_X86_64_GOTPCREL</span>). (GP-3610, Issue #5519)</li>
    <li><I>Importer:Mach-O</I>. Fixed a regression in the Mach-O Loader that was causing incorrect <span class="gcode">DYLD_CHAINED_PTR_64_KERNEL_CACHE</span> fixups. (GP-3598)</li>
    <li><I>Importer:PE</I>. Fixed a timestamp encoding bug that caused PE symbol <span class="gcode">.exports</span> files to not get matched and applied in some circumstances. (GP-3552, Issue #5351)</li>
    <li><I>Importer:PE</I>. Failing to parse PE <span class="gcode">ExceptionDataDirectory</span> no longer prevents the import from finishing. (GP-3584, Issue #5483, #5496)</li>
    <li><I>Processors</I>. Fixed ARM Neon Thumb <span class="gcode">vdup</span> instruction, which was using the wrong bits for register value. (GP-3524, Issue #5420)</li>
    <li><I>Processors</I>. Fixed 6x09 <span class="gcode">leax</span> and <span class="gcode">leay</span> instructions to update zero flag. (GP-3525, Issue #5414)</li>
    <li><I>Processors</I>. Corrected 6809 macros compare flags and two-byte push/pops in big endian architecture variant. (GP-3606, Issue #5508)</li>
    <li><I>Processors</I>. Fixed flags for the 6809 processor left-shift instructions. (GP-3621, Issue #5523)</li>
</ul>
</blockquote>

<H1 align="center">Ghidra 10.3.1 Change History (June 2023)</H1>
<blockquote><p><u><B>Improvements</B></u></p>
<ul>
    <li><I>Debugger:LLDB</I>. Upgraded SWIG-generated Java (plus docs) to LLVM/lldb 16.x. (GP-3442, Issue #5359)</li>
    <li><I>Decompiler</I>. Added an option to the Decompiler, controlling the maximum size of jumptable that can be recovered. (GP-3266)</li>
    <li><I>Decompiler</I>. Improved Decompiler function call-override to consider calling convention when differentiating function signatures. (GP-3268, Issue #5335)</li>
    <li><I>Decompiler</I>. The Decompiler now respects tool options for shortening template strings within symbol names. (GP-3369)</li>
    <li><I>Importer:ELF</I>. Added <span class="gtitle">Max Zero-Segment Discard Size</span> import option to ELF Loader.  Value was previously hard-coded to 255 bytes. (GP-3428, Issue #5273)</li>
    <li><I>Importer:Mach-O</I>. Restored Mach-O indirect symbol creation when binding information is not present, such as when importing a <span class="gcode">DYLIB</span> extracted from a <span class="gcode">dyld_shared_cache</span>. (GP-3526)</li>
    <li><I>Languages</I>. Added windows<span class="gcode">__stdcall</span> calling convention as an alias to the default calling convention for <span class="gcode">aarch64</span> and <span class="gcode">x86-64</span>. (GP-3472)</li>
    <li><I>Scripting</I>. Improved the <span class="gcode">RecoverClassesFromRTTIScript</span> recognition of special vtables when they are in memory blocks not tied to imported file bytes. (GP-3463)</li>
    <li><I>Scripting</I>. Mitigated a <span class="gcode">RecoverClassesFromRTTIScript</span> issue where mangled typeinfo names were not always getting extracted from memory when more than one bad data type was created over the memory containing the mangled string. (GP-3467)</li>
</ul>
</blockquote>
<blockquote><p><u><B>Bugs</B></u></p>
<ul>
    <li><I>Analysis</I>. Fixed regression when functions are set as inline that can cause lockups: during analysis, with use of stack depth field, and for <span class="gtitle">Set Stack Depth Change</span> action. (GP-3499, Issue #5378, #5400, #5401)</li>
    <li><I>CParser</I>. Fixed C header file parsing of <span class="gcode">pragma</span> lines when a comma is found outside of parentheses. (GP-3541, Issue #5427)</li>
    <li><I>Data Types</I>. Corrected issues related to data organization retention and upgrade for data types. (GP-3506)</li>
    <li><I>Debugger:GDB</I>. Reduced frenetic queries for module info at launch time. Fixed <span class="gcode">00000000</span> values in module ranges. (GP-3448, Issue #4456, #5357)</li>
    <li><I>Decompiler</I>. Fixed bug that could cause errors in constant calculations involving 128-bit or larger registers. (GP-3426, Issue #3492)</li>
    <li><I>Decompiler</I>. Fixed a bug that could prevent recovery of a switch if the variable is written indirectly through a pointer alias. (GP-3441, Issue #5307)</li>
    <li><I>Decompiler</I>. Corrected 10.3 regression when <span class="gtitle">Edit Function Signature</span> is invoked from Decompiler, which may ignore the calling convention used with current function decompilation. (GP-3454, Issue #5367)</li>
    <li><I>Decompiler</I>. Fixed hashing bug causing inconsistent results with <span class="gtitle">Force Field</span> action in the Decompiler. (GP-3508, Issue #5372)</li>
    <li><I>Documentation</I>. Fixed missing <span class="gcode">return</span> in <span class="gcode">termmines.c</span> exercise file. (GP-3444, Issue #5343)</li>
    <li><I>Exporter</I>. Fixed a regression in the <span class="gtitle">Original File</span> exporter that prevented it from working when unapplied relocations were present in the relocation table. (GP-3446, Issue #5346)</li>
    <li><I>GUI</I>. Fixed bug where Ghidra did not prompt to save GUI Theme changes when exiting via a menu versus the window <span class="gtitle">X</span> (<em>Close Window</em>) button. (GP-3477, Issue #5377)</li>
    <li><I>GUI</I>. Updated the Python Interpreter prompt to use less space. (GP-3509, Issue #5379)</li>
    <li><I>GUI</I>. Fixed issue with menu bar colors on Mac system when using <span class="gtitle">Mac Aqua Look and Feel</span> while in dark mode. (GP-3528, Issue #4454)</li>
    <li><I>Importer</I>. Fixed an exception that occurred when the <span class="gcode">MzLoader</span> tried to split the <span class="gcode">HEADER</span> overlay block. (GP-3447, Issue #5320)</li>
    <li><I>Importer:ELF</I>. Corrected potential exception when processing invalid <span class="gcode">ELF PT_NOTE</span> program header. (GP-3493, Issue #5384)</li>
    <li><I>Importer:ELF</I>. Corrected bugs in ELF Android packed relocation processing and rendering of <span class="gcode">sleb128</span> data type. (GP-3543)</li>
    <li><I>Importer:Mach-O</I>. Fixed a regression in the Mach-O Loader that was causing incorrect <span class="gcode">DYLD_CHAINED_PTR_X86_64_KERNEL_CACHE</span> fixups. (GP-3474)</li>
    <li><I>Importer:Mach-O</I>. Fixed an <span class="gcode">AddressOutOfBoundsException</span> that could sometimes occur when importing the exports section of <span class="gcode">dyld_shared_cache</span> files. (GP-3505, Issue #5392)</li>
    <li><I>Importer:PE</I>. Fixed an <span class="gcode">IllegalStateException</span> that could occur if both <span class="gtitle">Load Local Libraries From Disk</span> and <span class="gtitle">Load System Libraries From Disk</span> options are used during import and the same library is found in both local and system directories. (GP-3445)</li>
    <li><I>Importer:PE</I>. Fixed a bug that caused PE symbol <span class="gcode">.exports</span> files to always get deleted after import. (GP-3519, Issue #5348)</li>
    <li><I>Languages</I>. Adjusted handling of PowerPC e500 small data area pointer. (GP-3480)</li>
    <li><I>Processors</I>. Fixed operand count mismatch in some M68000 instructions. (GP-2779, Issue #4807, #4808)</li>
    <li><I>Processors</I>. Corrected issue with M68000 <span class="gcode">pea</span> instruction with address based on <span class="gcode">SP</span>. (GP-2955, Issue #4795)</li>
    <li><I>Processors</I>. Fixed flag issue in 6502 <span class="gcode">TSX</span> instruction. (GP-2963, Issue #4838)</li>
    <li><I>Processors</I>. Addressed multiple issues with 8048, including fixing the <span class="gcode">movp</span>, <span class="gcode">movp3</span>, and <span class="gcode">jmpp</span> instructions and correcting the implementation of the memory bank selection. (GP-3009, Issue #2423, #4825)</li>
    <li><I>Processors</I>. Fixed decoding of x86-64 <span class="gcode">popf</span> and <span class="gcode">pushf</span> instructions. (GP-3102, Issue #4980)</li>
    <li><I>Processors</I>. Corrected pcode for PowerPC <span class="gcode">e_stmvsprw</span> instruction. (GP-3325, Issue #4886)</li>
    <li><I>Processors</I>. Fixed PowerPC instruction <span class="gcode">eieio</span> decode for all valid variants. (GP-3432, Issue #4887)</li>
    <li><I>Processors</I>. Fixed issue with AARCH64 <span class="gcode">mla</span> instruction using erroneous registers. (GP-3478)</li>
    <li><I>Processors</I>. Restored original M68000 calling convention to only use stack, and added an additional <span class="gcode">.cspec</span> file for the optional <em>Register ABI</em> calling convention for ColdFire.  Also added bonus function start patterns identified during testing. (GP-3532, Issue #5390)</li>
    <li><I>Sleigh</I>. Fixed SleighEditor to allow <span class="gcode">2</span> to <span class="gcode">n</span> arguments in <span class="gcode">CPOOL</span> Sleigh operator. (GP-3534, Issue #2148)</li>
</ul>
</blockquote>

<H1 align="center">Ghidra 10.3 Change History (May 2023)</H1>
<blockquote><p><u><B>New Features</B></u></p>
<ul>
    <li><I>Analysis</I>. Initial Golang binary analysis for Go 1.18. (GP-2114, Issue #2327)</li>
    <li><I>Debugger</I>. Added breakpoint indicators to the Decompiler's margin, when used in the Debugger. (GP-1280)</li>
    <li><I>Debugger</I>. Added Debugger control actions to global toolbar. (GP-1595, Issue #3742)</li>
    <li><I>Debugger</I>. Created new independent launchers for Debugger agents. (GP-1999)</li>
    <li><I>Debugger</I>. Added ability to set node timeout. (GP-2502)</li>
    <li><I>Debugger</I>. Added class materials for the Debugger. (GP-2641)</li>
    <li><I>Debugger</I>. Added hover tooltips for variable values in the Static Listing, Decompiler, and Dynamic Listing. Added <span class="gtitle">Unwind Stack</span> action. (GP-2834, Issue #4732)</li>
    <li><I>Debugger</I>. Added ability to set initial directory and other parameters. (GP-2839, Issue #4732)</li>
    <li><I>Debugger</I>. Added a dedicated <span class="gtitle">Emulator</span> tool. (GP-3074, Issue #4931)</li>
    <li><I>Debugger</I>. Added ability to export/serve symbols and types as Volatility ISF JSON. (GP-3222)</li>
    <li><I>Debugger:Emulator</I>. Added <span class="gtitle">Invalidate Emulator Cache</span> action. (GP-2970)</li>
    <li><I>Debugger:Emulator</I>. Added <span class="gtitle">Add Region</span> and <span class="gtitle">Delete Regions</span> actions to the <span class="gtitle">Regions</span> window. (GP-3357)</li>
    <li><I>Debugger:Objects</I>. Added commands <span class="gtitle">Advance</span> to GDB, <span class="gtitle">Step/Trace to Address</span> to dbgeng/model, and <span class="gtitle">Run to Address</span> to LLDB in address context menus. (GP-1808, Issue #4056)</li>
    <li><I>DWARF</I>. Added support for some Apple-specific DWARF tags. (GP-3175)</li>
    <li><I>GUI</I>. Added theming support to Ghidra, including a dark theme. (GP-1981, Issue #4145)</li>
    <li><I>GUI</I>. By default, programs will now open to their location when last closed. (GP-2939, Issue #1196)</li>
    <li><I>Pcode</I>. Support for a new p-code operator <span class="gcode">lzcount</span> has been introduced into SLEIGH, the Decompiler, emulation, etc. It returns the count of <em>leading</em> zero bits in its operand. (GP-3155, Issue #2810)</li>
    <li><I>Processors</I>. Added eBPF and BPF processors. (GP-2257, Issue #4258, #4378)</li>
    <li><I>Project</I>. Added <span class="gtitle">Restore Previous Project</span> option to the Front End Tool that controls whether or not the previously opened project is automatically restored on startup. (GP-2695, Issue #4650)</li>
    <li><I>Scripting</I>. Created <span class="gcode">AssociateExternalPELibrariesScript</span> that associates imported library files for PE programs in order to fix up external references from the program to the libraries. This is useful for users who forgot to load the libraries on program import and want to fix up the references after the fact. (GP-3098)</li>
    <li><I>Version Tracking</I>. Updated the Version Tracking API to make extension of correlators easier. (GP-3199, Issue #4950)</li>
</ul>
</blockquote>
<blockquote><p><u><B>Improvements</B></u></p>
<ul>
    <li><I>Analysis</I>. Added support for pointer Typedef values passed as parameters to functions. (GP-2160)</li>
    <li><I>Analysis</I>. Added identification and side-effect fixes for windows AARCH64 <span class="gcode">__security_push_cookie</span> to fix poor Decompiler and stack reference results. (GP-3124, Issue #5018)</li>
    <li><I>Analysis</I>. Added support for processing PE MinGW pseudo-relocations during auto-analysis immediately after import. (GP-3236, Issue #5155)</li>
    <li><I>API</I>. Added ability to associate a specific program architecture with a datatype archive.  This allows associated types to preserve proper type sizing and alignment characteristics based upon a designated architecture.  Delivered archives will reflect the architecture they were created with instead of utilizing the default data organization. (GP-1633, Issue #4898)</li>
    <li><I>API</I>. Changed <span class="gcode">FunctionDefinition</span> and <span class="gcode">FunctionSignature</span> to use calling convention names as strings instead of being limited to <span class="gcode">GenericCallingConvention</span>.   Also added <span class="gcode">noreturn</span> support to these interfaces. (GP-2308, Issue #3267, #4537)</li>
    <li><I>API</I>. Added methods to <span class="gcode">TaskMonitor</span> to address spelling inconsistencies. (GP-2982, Issue #4870)</li>
    <li><I>API</I>. Revised program Relocation table to include status and a more accurate length of affected bytes when applied. (GP-3013)</li>
    <li><I>API</I>. Added by-name index method <span class="gcode">SymbolTable.scanSymbolsByName(String startName)</span>.  This has been utilized by the assembler UI to resolve a hang on large programs. (GP-3015, Issue #2630)</li>
    <li><I>Basic Infrastructure</I>. Upgraded dependencies to guava 31.1-jre (from 19.0), baksmali 2.5.2 (from 1.4.0), and dex2jar 2.1 (from 2.0). (GP-3154)</li>
    <li><I>Basic Infrastructure</I>. Improved error handling of module directories not being readable during launch. (GP-3347, Issue #5244)</li>
    <li><I>Build</I>. Added support for building with Gradle 8. (GP-2476, Issue #3527, #5003)</li>
    <li><I>Build</I>. The build now enforces a maximum-supported Gradle version. The current supported versions are Gradle 7.3 or later. (GP-3111)</li>
    <li><I>Build</I>. Ghidra can now run from development/repository mode using Gradle's compiled jars, instead of just relying on Eclipse's compilation output. (GP-3140)</li>
    <li><I>C Parsing</I>. Provided GDT archives have been updated to include new ProgramArchitecture settings for processor, data organization, and endianness. (GP-1377)</li>
    <li><I>CParser</I>. Removed unnecessary <span class="gcode">-D</span> defines related to wchar_t from CParser <span class="gcode">prf</span> files and GDT parsing scripts. (GP-3294, Issue #5196)</li>
    <li><I>Data Types</I>. Function definitions can now be applied from selected Category instead of only from an entire Archive. (GP-199)</li>
    <li><I>Data Types</I>. Changed Structure/Union editor to show numbers in hex format by default. Also added <span class="gcode">Shift-H</span> keybinding action for toggling hex/decimal view. (GP-2943)</li>
    <li><I>Data Types</I>. Improved <span class="gcode">DataTypeParser</span> to handle type names which include the <span class="gcode">::</span> namespace delimiter. (GP-3003, Issue #4841)</li>
    <li><I>Data Types</I>. Changed <span class="gtitle">Apply Data Archives</span> analyzer to allow user to choose a data type archive to apply to their binary during analysis. (GP-3344, Issue #5184)</li>
    <li><I>Debugger</I>. Added option to <em>memorize</em> a program-module association when confirming mapped modules. (GP-1527, Issue #3641, #3675)</li>
    <li><I>Debugger</I>. Improved the <span class="gtitle">Go To...</span> dialog. It now accepts simple addresses or Sleigh expressions. (GP-1539)</li>
    <li><I>Debugger</I>. Removed Guava from Debugger's dependencies. (GP-1542)</li>
    <li><I>Debugger</I>. Replaced Guava's Cache. (GP-1545)</li>
    <li><I>Debugger</I>. Improvements to allow dbgmodel kernel debugging. (GP-1768)</li>
    <li><I>Debugger</I>. Upgraded protobuf to 3.21.8. (GP-2302, Issue #4415, #4540)</li>
    <li><I>Debugger</I>. Improved default connector selection, based on current program and last successful connection. (GP-2623)</li>
    <li><I>Debugger</I>. Added remote connectivity for LLDB. (GP-2709)</li>
    <li><I>Debugger</I>. Made modifications in support of iPhone work. (GP-2870)</li>
    <li><I>Debugger</I>. Better instructions for LLDB/Swig. (GP-3055, Issue #4774)</li>
    <li><I>Debugger</I>. Made LLDB-related improvements in support of iPhone work. (GP-3063)</li>
    <li><I>Debugger</I>. Changed <span class="gcode">refresh</span> option from boolean to <span class="gcode">RefreshBehavior</span> enum to allow opportunistic use of caches. (GP-3142)</li>
    <li><I>Debugger</I>. Providing convenience script for LLDB builds. (GP-3247, Issue #5061)</li>
    <li><I>Debugger</I>. Changed <span class="gtitle">Go To Time</span> action to use the Time selection dialog. (GP-3317)</li>
    <li><I>Debugger:Agents</I>. Limited debug agents to accept a single GADP connection and to terminate automatically when disconnected. (GP-1976)</li>
    <li><I>Debugger:Agents</I>. API: Removed <span class="gcode">TargetObject.add/removeListener()</span> in favor of <span class="gcode">DebuggerObjectModel.add/removeModelListener()</span>. (GP-2752)</li>
    <li><I>Debugger:Agents</I>. Enable opportunistic uses of caching. (GP-3162)</li>
    <li><I>Debugger:Breakpoints</I>. Breakpoints window can now interact with the integrated emulator. It also supports custom Sleigh injections or conditions. (GP-2676)</li>
    <li><I>Debugger:Emulator</I>. Dynamic views can now show (lazily) loaded bytes for pure emulation. (GP-2989)</li>
    <li><I>Debugger:Emulator</I>. Moved new Emulator into its own module. (GP-3071)</li>
    <li><I>Debugger:Listing</I>. Added visual indicator when <span class="gcode">PC</span> (or other tracked location) is not located in the listing. (GP-2750)</li>
    <li><I>Debugger:Registers</I>. Changed Registers and Watches to use pointer typedefs. This allows a user to specify the target space of a pointer, especially in Harvard architectures. (GP-2653)</li>
    <li><I>Debugger:Registers</I>. Added consideration for aliases when matching target registers to Ghidra registers. (GP-2966)</li>
    <li><I>Debugger:Threads</I>. Changed Threads, Stack, and Time panes to require double-click to activate the selection in the rest of the UI. (GP-3018)</li>
    <li><I>Debugger:Trace</I>. Replaced <span class="gcode">Range&lt;T&gt;</span> with <span class="gcode">Lifespan</span>, <span class="gcode">ULongSpan</span>, <span class="gcode">KeySpan</span>, <span class="gcode">FieldSpan</span>, etc. (GP-1543)</li>
    <li><I>Decompiler</I>. Compiler specification (cspec) files allow more flexibility when describing overlapping parameter-passing storage locations. (GP-2544, Issue #4568)</li>
    <li><I>Decompiler</I>. Decompiler analysis of functions with multiple switch statements is substantially faster in many cases. (GP-2560, Issue #4558)</li>
    <li><I>Decompiler</I>. The Decompiler can now split a copy operation that simultaneously moves multiple fields in a structure or multiple elements of an array. (GP-2563, Issue #3884)</li>
    <li><I>Decompiler</I>. The Decompiler propagates constants, in more situations, into blocks that are executed conditionally. (GP-2603, Issue #4527)</li>
    <li><I>Decompiler</I>. Added <span class="gcode">DecompilerStackProblemsFinderScript</span>, which searches the decompiled code for certain local variables that can be indicators of stack analysis issues. (GP-2697)</li>
    <li><I>Decompiler</I>. Added Decompiler actions to convert constants to Double and Float. (GP-3001, Issue #3689)</li>
    <li><I>Decompiler</I>. The Decompiler's Rename actions now allow the user to reclaim an automatically generated name on another symbol. (GP-3224, Issue #4863)</li>
    <li><I>Diff</I>. Added ability to initiate a Program Diff with another program selected from a list of compatible open programs already open in the tool. (GP-2897)</li>
    <li><I>DWARF</I>. Added support for ELF-compressed sections. (GP-2363, Issue #3659, #4460)</li>
    <li><I>Eclipse Integration</I>. Eclipse now recognizes test source folders. (GP-3130)</li>
    <li><I>ELF</I>. Added support for tagging ELF informational sections.  Added support for Golang metadata in ELF binaries. (GP-2111)</li>
    <li><I>Exporter</I>. The PE and ELF exporters have been replaced by a new Original File Exporter that will work on all programs that store original file bytes.  The Original File Exporter has an option to export both user-modified bytes as well as original bytes. (GP-2770)</li>
    <li><I>Graphing</I>. Upgraded jungrapht-visualization and jungrapht-layout to version 1.4. (GP-3249, Issue #5156)</li>
    <li><I>GUI</I>. Improved support for Ghidra URLs and their use in comment annotations. (GP-2509)</li>
    <li><I>GUI</I>. Updated the Navigation History Plugin's maximum history limit. (GP-2843)</li>
    <li><I>GUI</I>. Improved table-sorting performance. (GP-2908, Issue #4782)</li>
    <li><I>GUI</I>. Updated the Structure Editor to maintain the table selection during external updates. (GP-2945, Issue #4820)</li>
    <li><I>GUI</I>. Added new feature where programs can automatically go to a newly discovered start symbol (e.g., "main") after analysis completes. If the user has navigated to another program location before analysis completes, a popup dialog will appear asking if the user would like to go to the new symbol. Both of these behaviors can be turned off via the <span class="gtitle">Navigation</span> tool options. (GP-3064)</li>
    <li><I>GUI</I>. Added ability for default tool launch (e.g., project file double-click) to reuse existing tool instead of always launching a new tool.  This behavior controlled via Project Window <span class="gtitle">Default Tool Launch Mode</span> option. (GP-3080)</li>
    <li><I>GUI</I>. Updated the Memory Map table to use a fixed-width font for the Start, End, and Length columns. (GP-3103)</li>
    <li><I>GUI</I>. Updated <span class="gtitle">Create Enums From Selection</span> action to handle duplicate-named enum entries when merging selected enums together into a new enum. (GP-3204, Issue #5036)</li>
    <li><I>GUI</I>. Added a Front End tool option to disable application-wide tooltip popups. (GP-3254, Issue #5095)</li>
    <li><I>GUI</I>. Fixed several issues with enums and the GUI for editing them. The API supported both unsigned and signed enums, but the GUI only supported unsigned enums. Also added extra checking so that enums can't support negative values and large unsigned values at the same time. (GP-3255, Issue #3806)</li>
    <li><I>GUI</I>. Clicking a sound icon in the Listing will now stop any currently playing sound. (GP-3393, Issue #5278)</li>
    <li><I>Importer</I>. Headless Ghidra and the AutoImporter API now support loading more than one program, such as when importing a program results in additional libraries getting loaded. (GP-2877, Issue #4929)</li>
    <li><I>Importer</I>. The OMF Loader now handles LPUBDEF symbols. (GP-2976, Issue #4854)</li>
    <li><I>Importer</I>. The OMF Loader now handles unsupported/unknown record types more gracefully. (GP-2997, Issue #4856, #4857)</li>
    <li><I>Importer</I>. Improved GZF/GDT import and export to allow unforced upgrade of older files.  This is particularly important when a user has a version-sensitive issue and needs to have the project file triaged. (GP-3034)</li>
    <li><I>Importer</I>. The OMF Loader now handles CEXTDEF symbols. Known functions are now also created by the OMF loader to improve analysis. (GP-3117, Issue #4912)</li>
    <li><I>Importer</I>. Made improvements to the OMF Loader's relocation handler. (GP-3141, Issue #4909)</li>
    <li><I>Importer</I>. Improved support for loading old-style DOS MZ binaries. (GP-3353, Issue #5229)</li>
    <li><I>Importer:ELF</I>. Eliminated the public mutability and writing of ELF Headers whose implementation is not well suited for this in the absence of any ELF Linker support or related processor extension API. (GP-3152)</li>
    <li><I>Importer:Mach-O</I>. Mach-O external libraries are now linked during analysis. (GP-2602)</li>
    <li><I>Importer:PE</I>. The PE Loader has been updated to correctly recognize and mark the program compiler ID for MinGW programs. GNU Demangler has been updated to recognize and run on programs with GCC compiler option. (GP-1851, Issue #2208, #4513, #4514, #4520, #4906, #5155)</li>
    <li><I>Importer:PE</I>. The PE Loader can now load sections that extend beyond the end of the imported file without error. (GP-2826, Issue #4705)</li>
    <li><I>Importer:PE</I>. The PE Loader no longer rebases images to 0x10000 when the preferred image base is very large. (GP-2827, Issue #2361, #4710)</li>
    <li><I>Importer:PE</I>. Improved PE header parsing so binaries with corrupt symbol/string tables do not prevent Ghidra from recognizing them as PE. (GP-2973)</li>
    <li><I>Jython</I>. Improved Python interpreter code-completion behavior. (GP-2759, Issue #4678, #4699)</li>
    <li><I>Languages</I>. Reverted disassembly of x86 two-byte <span class="gcode">xchg ax,ax</span> back to <span class="gcode">nop</span>. (GP-3372)</li>
    <li><I>Listing</I>. Added <span class="gtitle">Simplify Template Names</span> option (on by default) to simplify symbol and datatype names with complex template info as part of their name. This only affects the Listing display and doesn't affect the actual symbol or datatype name. (GP-388)</li>
    <li><I>Listing</I>. Added options for the starting location of a program when it is opened, which will move the location to a specific function or label. See <span class="gtitle">Preferred Symbol Name</span> under the <span class="gtitle">Navigation</span> tool options. (GP-2141, Issue #4267)</li>
    <li><I>Listing</I>. Changed overlapping markers to blend rather than occlude. (GP-2723)</li>
    <li><I>Multi-User</I>. The Ghidra Server's temp directory can now be controlled by setting the <span class="gcode">WRAPPER_TMPDIR</span> variable in <span class="gcode">ghidraSvr(.bat)</span>. (GP-3053, Issue #4925)</li>
    <li><I>Multi-User</I>. Upgraded YAJSW to 13.09. (GP-3119)</li>
    <li><I>Processors</I>. Corrected treatment of x86 LOCK prefix. (GP-2487, Issue #4336)</li>
    <li><I>Processors</I>. Added support for ARM v4T and v5T <span class="gcode">bl lr</span> and <span class="gcode">blx lr</span> pseudo-instructions. (GP-2872, Issue #4320)</li>
    <li><I>Project</I>. Added support for Ghidra-URL-linked project files and folders.  <span class="gtitle">Copy/Paste-Link</span> actions are added to project file tree when copying from viewed repository or another project. (GP-2644)</li>
    <li><I>Prototypes</I>. <span class="gcode">PrototypeModel.getReturnAddress()</span>  now returns the default return address of the compiler spec when a prototype does not define its own. (GP-2612, Issue #4611)</li>
    <li><I>Scripting</I>. The <span class="gcode">RecoverClassesFromRTTIScript</span> has been updated to recognize and process Windows PE programs compiled with GCC (i.e., MinGW, Cygwin programs). (GP-1856)</li>
    <li><I>Scripting</I>. The <span class="gcode">RecoverClassesFromRTTIScript</span> has a few improvements for GCC-compiled programs. (GP-2679, Issue #4414)</li>
    <li><I>Scripting</I>. Added the <span class="gcode">RTTI Found</span> RTTI Analyzer option to the program information, which is used to determine whether to rerun the analyzer and also to decide whether to run the RTTI script. (GP-3293)</li>
    <li><I>Sleigh</I>. Improved Sleigh compiler warning and error messages. (GP-2913, Issue #4595)</li>
</ul>
</blockquote>
<blockquote><p><u><B>Bugs</B></u></p>
<ul>
    <li><I>Analysis</I>. Removed check for instruction falling into a location being considered for a shared return function. (GP-3044)</li>
    <li><I>Analysis</I>. Added support for stack parameter tracking, PointerTypedef parameters, restrictions of parameter values to known pointer parameters, and a prototype-setting for propagation of pointer parameter types to memory. (GP-3077)</li>
    <li><I>Analysis</I>. Fixed deadlock in Arm Analyzer waffling between overriding the return instruction as a return and branch. (GP-3150)</li>
    <li><I>Analysis</I>. Removed duplicate references placed on different operands of instructions. (GP-3214)</li>
    <li><I>Analysis</I>. Fixed issues related to analysis flag and how it affects asking the user to analyze a new program. (GP-3282)</li>
    <li><I>Analysis</I>. By default, pointer-to-pointer analysis is turned off for ARM binaries in the Operand and Data Reference analyzers.  This can result in fewer references created, and can be turned back on if your binaries use pointer data in memory instead of offset values from the current PC. (GP-3335)</li>
    <li><I>API</I>. Fixed bug on pinned symbols when changing image base. (GP-3178, Issue #4290)</li>
    <li><I>API</I>. Revised <span class="gcode">ApplyFunctionSignatureCmd</span> to allow use where function should not get renamed when signature applied. (GP-3350)</li>
    <li><I>Byte Viewer</I>. Fixed bug in Byte Viewer where the last byte in a block could not be selected if the field group size was larger than 1. (GP-1593)</li>
    <li><I>CParser</I>. Fixed parsing of Windows <span class="gcode">wdm.h</span> header file with multi-line strings passed as arguments to a macro. (GP-2809, Issue #4690)</li>
    <li><I>CParser</I>. <span class="gcode">CParser.parse(String)</span> method no longer throws an exception, and, when parsing a structure as a string, the return type will be the structure&mdash;not the last member of the structure. (GP-3183, Issue #4903)</li>
    <li><I>CParser</I>. Removed <span class="gcode">wchar_t</B></span> as a keyword when parsing header files.  <span class="gcode">wchar_t</span> will always use the built-in <span class="gcode">wchar_t</span> datatype even if defined with a <span class="gcode">typedef</span> within a header file. (GP-3215, Issue #5108)</li>
    <li><I>CParser</I>. Fixed issue with CParser creating <span class="gcode">#define</span> enum values if unsigned long is specified with parentheses around the value; for example, <span class="gcode">#define X (4ul)</span>. (GP-3216, Issue #5069)</li>
    <li><I>CParser</I>. Pressing <span class="gtitle">Cancel</span> during parsing of header files is now more responsive. (GP-3284, Issue #5181)</li>
    <li><I>CParser</I>. Enum constants are now created by the CParser when <span class="gcode">#define</span> expressions ending in <span class="gcode">ULL</span>, <span class="gcode">LLU</span>, <span class="gcode">LL</span>, and <span class="gcode">LU</span> are found in parentheses. (GP-3285, Issue #5161)</li>
    <li><I>CParser</I>. Fixed expansion of <span class="gcode">#define</span> statements embedded in <span class="gcode">#include</span> files and parsing of constants with <span class="gcode">UL</span>/<span class="gcode">LL</span> size specifications. (GP-3310, Issue #5207)</li>
    <li><I>CParser</I>. Fixed CParser issues with forward-declared Enums and typedefs used within the body of functions. (GP-3371, Issue #3526, #5271)</li>
    <li><I>CParser</I>. <span class="gcode">Enum</span> sizes are now set to the size of an <span class="gcode">int</span> for the processor (formerly 4), and <span class="gcode">enum</span>s from <span class="gcode">#define</span>s are set to the the smallest <span class="gcode">enum</span> size that will fit the number (formerly 8).  Future change will add packed <span class="gcode">enum</span> sizes. (GP-3385)</li>
    <li><I>Data</I>. Corrected handling of zero-length components in the form of Listing DataComponent CodeUnits.  These were incorrectly reporting a length of 0 instead 1; all Listing Data, including DataComponents, must report a positive non-zero length. (GP-3314)</li>
    <li><I>Data Types</I>. Automatically created class structures now respect the <span class="gtitle">Preferred Root Namespace Category</span> property. (GP-1123, Issue #3196)</li>
    <li><I>Data Types</I>. Added support for floating-point data types to parse decimal string representation.   A significant refactor of FloatFormat and BigFloat was completed.  BigFloat is now used as the value class for all float data types.  Introduced <span class="gcode">DataType.getAlignedLength()</span> method which was needed to differentiate between the <em>raw</em> encoding size and the <em>aligned</em> (i.e., padded) size used by a compiler when allocating storage (i.e., <span class="gcode">sizeof</span>). Example: for x86-32 gcc, 80-bit float has an aligned-length of 12-bytes which reflects compiler's <span class="gcode">sizeof(long double)</span>. (GP-1379)</li>
    <li><I>Data Types</I>. Corrected 80-bit floating point support to include decode, encode, and computation via the FloatFormat and BigFloat support classes. (GP-3022, Issue #4853)</li>
    <li><I>Debugger</I>. Fixed issue with default renaming of traces when auto-saving with conflicting names. (GP-1484)</li>
    <li><I>Debugger</I>. Fixed bug in refresh logic. (GP-1884)</li>
    <li><I>Debugger</I>. Fixed various errors in breakpoint logic for dbgeng/model. (GP-2177)</li>
    <li><I>Debugger</I>. Fixed occasional stack trace in auto-saving traces when closing Debugger. (GP-2732)</li>
    <li><I>Debugger</I>. Miscellaneous fixes for LLDB agent. (GP-2781)</li>
    <li><I>Debugger</I>. Provided greater flexibility with library load error messages. (GP-3012)</li>
    <li><I>Debugger</I>. <span class="gtitle">Emulate Program</span> and <span class="gtitle">Map Identically</span> actions now exclude EXTERNAL block. (GP-3087)</li>
    <li><I>Debugger</I>. Removed <span class="gtitle">Tool Options: Colors</span> sections from Debugger help. (GP-3218)</li>
    <li><I>Debugger:Agents</I>. Fixed some issues with GADP agent <span class="gcode">no-dep</span> jars. (GP-1007, Issue #3076)</li>
    <li><I>Debugger:Agents</I>. Fixed a <span class="gcode">NullPointerException</span> in <span class="gcode">GadpValueUtils</span>. (GP-2915, Issue #4791)</li>
    <li><I>Debugger:Agents</I>. Fixed GADP connectors to use the same JRE/JDK as Ghidra. (GP-2979)</li>
    <li><I>Debugger:dbgeng.dll</I>. A register modification now updates the Stack and other windows. (GP-2636)</li>
    <li><I>Debugger:Emulator</I>. The emulator will now halt when trying to decode an instruction from uninitialized memory. (GP-1529)</li>
    <li><I>Debugger:Emulator</I>. Fixed Emulator for processors that use crossbuild. (GP-1904)</li>
    <li><I>Debugger:Emulator</I>. Removed 4 unnecessary classes in emulator: <span class="gcode">RequireHasKnownTraceCachedWriteBytesPcodeExecutorState</span>, <span class="gcode">RequireHasKnownTraceCachedWriteBytesPcodeExecutorStatePiece</span>, <span class="gcode">RequireIsKnownTraceCachedWriteBytesPcodeExecutorState</span>, and <span class="gcode">RequireIsKnownTraceCachedWriteBytesPcodeExecutorStatePiece</span>. (GP-3280)</li>
    <li><I>Debugger:GDB</I>. Fixed missing stack frames when single-stepping. (GP-1470)</li>
    <li><I>Debugger:GDB</I>. Fixed unnecessary error popup when user rejects HostKey while connecting to GDB via SSH. (GP-1710)</li>
    <li><I>Debugger:GDB</I>. Fixed <em>Erase In Line</em> ANSI escape decoding issue for GDB on Windows. (GP-3135, Issue #3562, #5026)</li>
    <li><I>Debugger:GDB</I>. Fixed issue launching binaries in GDB with spaces in the path. (GP-3311, Issue #5203)</li>
    <li><I>Debugger:Listing</I>. Fixed a bug where closing a cloned Dynamic Listing resulted in an extraneous stale <span class="gcode">PC</span> marker in the Static Listing. (GP-2991)</li>
    <li><I>Debugger:Mappings</I>. <span class="gtitle">Map Identically</span> and <span class="gtitle">Map Manually</span> actions will now refuse to overwrite existing mappings. (GP-3086)</li>
    <li><I>Debugger:Trace</I>. Fixed a bug that allowed the user to undo a trace's initial transaction. This would lead to a subsequent <span class="gcode">NullPointerException</span>. (GP-3213)</li>
    <li><I>Debugger:Trace</I>. Fixed issue with <span class="gtitle">Undo</span> not being effective immediately. (GP-3358)</li>
    <li><I>Decompiler</I>. Fixed a Decompiler decoding error that occurred when a pre-comment contained a null character. (GP-3002, Issue #4836)</li>
    <li><I>Decompiler</I>. Line breaks in Decompiler output can no longer disable a comment annotation. (GP-3029)</li>
    <li><I>Demangler</I>. Fixed missing use of <span class="gcode">wchar_t</span>, <span class="gcode">wchar16</span>, and <span class="gcode">wchar32</span> primitives in Demanglers. (GP-3184, Issue #5080)</li>
    <li><I>Documentation</I>. Made minor fixes and improvements to the Advanced Ghidra training class documentation. (GP-2944)</li>
    <li><I>ELF</I>. Corrected ELF MIPS Relocation processing for R_MIPS_32.  Added support for R_MIPS_PC21_S2 and R_MIPS_PC26_S2. (GP-3260, Issue #5160)</li>
    <li><I>Exporter</I>. Corrected operand formatting issues with <span class="gcode">ProgramTextWriter</span>, which affected HTML/ASCII exports. (GP-1868, Issue #793)</li>
    <li><I>Framework</I>. Fixed an <span class="gcode">IllegalStateException</span> that occurred while refreshing the Bundle Manager after the Code Browser tool had been closed. (GP-2711, Issue #4656)</li>
    <li><I>Graphing</I>. Changed default Call Graph action to always use the isolated entry block model, which will give the best results most of the time. (GP-3250, Issue #5157)</li>
    <li><I>Graphing</I>. Fixed stack trace when reusing graphs. (GP-3399)</li>
    <li><I>GUI</I>. Updated tables to correctly take focus when pressing <span class="gcode">F2</span> to start an edit. (GP-366)</li>
    <li><I>GUI</I>. Fixed issue where add/edit label dialog would grow ridiculously large. (GP-543)</li>
    <li><I>GUI</I>. Improved function-signature-parsing within Function Editor dialog to handled sized pointers. (GP-1100, Issue #3178)</li>
    <li><I>GUI</I>. Fixed bug where symbol tree category nodes could not be closed when there was a filter in place. (GP-2187)</li>
    <li><I>GUI</I>. Updated the Data Type Manager tree to maintain the tree selection when opening an archive for editing. (GP-2423)</li>
    <li><I>GUI</I>. Fixed the Enum Editor to allow sorting on the Comments column. (GP-2776, Issue #4693)</li>
    <li><I>GUI</I>. Updated the Equates Table to allow multiple selection. (GP-2887, Issue #4771)</li>
    <li><I>GUI</I>. Added rapid Ghidra Server timeout during initial connection to avoid lengthy connection delay when the server system is offline. (GP-2935)</li>
    <li><I>GUI</I>. Added support for HTML rendering in <span class="gcode">TableChooserDialog</span>. (GP-2996, Issue #4880)</li>
    <li><I>GUI</I>. Fixed bug that prevented editing of function variable data types in the <span class="gtitle">Edit Function</span> dialog. (GP-3115, Issue #4970)</li>
    <li><I>GUI</I>. Updated the <span class="gtitle">Function Signature</span> dialog to allow editing the parameter table using only the keyboard. (GP-3173, Issue #3561)</li>
    <li><I>GUI</I>. Fixed bug where scroll bar didn't appear when the view size was just slightly smaller than the actual text to be displayed. This affected the Listing, Bytes, and Decompiler views. (GP-3202, Issue #3938)</li>
    <li><I>GUI</I>. Added the ability to copy details from the <span class="gtitle">Missing Processor Manual</span> dialog. (GP-3205, Issue #4218)</li>
    <li><I>GUI</I>. Fixed issue where opening multiple file datatype archives with the same name would not appear in the Datatypes tree. (GP-3281)</li>
    <li><I>GUI</I>. Changed function custom storage editor to permit larger storage to be specified.  Undefined datatype size will expand to match storage size up to 8 bytes. (GP-3286, Issue #4983)</li>
    <li><I>GUI</I>. Fixed bug in Plate Comment that caused truncation during word wrapping. (GP-3403, Issue #5297, #5298)</li>
    <li><I>Headless</I>. Fixed a bug that caused a program to have an invalid <span class="gcode">Executable Location</span> property when the program was imported headlessly from a relative path. (GP-3054)</li>
    <li><I>Importer</I>. The OMF Loader now parses COMMENT_CLASS_LIB correctly. (GP-3118, Issue #5016)</li>
    <li><I>Importer</I>. Fixed an issue that could cause the Importer to not respect the <span class="gtitle">Load System Libraries From Disk</span> and <span class="gtitle">Load Local Libraries From Disk</span> options if the <span class="gtitle">Perform Library Ordinal Lookup</span> option was used. (GP-3272, Issue #4849)</li>
    <li><I>Importer:ELF</I>. Corrected ELF Loader issue which could improperly set memory blocks as read-only. (GP-2730)</li>
    <li><I>Importer:ELF</I>. Added support for ELF X86-64 GOTPCREL relocation processing.  Revised ELF relocation processing context API to utilize a single instance per import instead of one per relocation table. (GP-2984, Issue #4859)</li>
    <li><I>Importer:ELF</I>. Corrected ELF Loader issue with INIT/FINI array processing when entries have relocations applied. (GP-3176, Issue #5039)</li>
    <li><I>Importer:ELF</I>. Changed ELF relocation processing to avoid creating offset-pointers in memory blocks whch have execute permission or for section based relocations. (GP-3339, Issue #5238)</li>
    <li><I>Importer:Mach-O</I>. Fixed Mach-O external symbol namespace issues that prevented demangling. (GP-2511)</li>
    <li><I>Importer:Mach-O</I>. Fixed an exception that could occur while parsing DYLD chained fixups in some Mach-O binaries. (GP-3151)</li>
    <li><I>Importer:Mach-O</I>. Fixed a bug that prevented the Mach-O loader from finding and loading libraries that reside in a Universal Binary file. (GP-3167)</li>
    <li><I>Importer:Mach-O</I>. The Mach-O Loader now correctly handles DYLD_CHAINED_PTR_64_OFFSET fixups. (GP-3194, Issue #4986)</li>
    <li><I>Importer:Mach-O</I>. Fixed an exception that occurred when importing Mach-O PowerPC binaries with relocations. (GP-3259)</li>
    <li><I>Importer:PE</I>. Added a PE Loader <span class="gtitle">Show Debug Line Number Comments</span> option to show/hide debug line number comments. (GP-714, Issue #1184)</li>
    <li><I>Importer:PE</I>. Fixed some issues with parsing Windows Dialog resources. (GP-2821, Issue #3807, #3808)</li>
    <li><I>Languages</I>. Added the <code><b>HALT</b></code> instruction to the Coldfire processor. (GP-3326, Issue #5194)</li>
    <li><I>Multi-User</I>. Corrected issue where shared project creation would retain canonical server name instead of the original, specified hostname. (GP-3050, Issue #4924, #4928)</li>
    <li><I>Multi-User</I>. Corrected issue which disallowed Ghidra Server user IDs starting with a 0&ndash;9 digit. (GP-3121)</li>
    <li><I>PDB</I>. Overriding overzealous thunk detection on function creation when PDB knows better. (GP-3127)</li>
    <li><I>PDB</I>. Stubbed in some structures to represent class Member Pointers.  Details need to be determined with future research. (GP-3171, Issue #5055)</li>
    <li><I>PDB</I>. A function is now created for a global label only if there are function indicators; otherwise, only a label is applied. Reverts the forced-function creation part of GP-2505. (GP-3200)</li>
    <li><I>PDB</I>. Fixed PDB handling of same-named <span class="gcode">__unnamed</span> anonymous data types with different definitions used within a common structure.  These could be emitted by VS 2005. (GP-3279)</li>
    <li><I>Processors</I>. Fixed issues with M68000 shift and rotate instruction behavior. (GP-2013, Issue #4217)</li>
    <li><I>Processors</I>. Added missing x87 <span class="gcode">FDESI</span>, <span class="gcode">FENI</span>, <span class="gcode">FNDESI</span>, and <span class="gcode">FNENI</span> instructions. (GP-2093, Issue #4262)</li>
    <li><I>Processors</I>. Added support for SuperH <span class="gcode">fsrra</span>, <span class="gcode">fsca</span>, and <span class="gcode">movua.l</span> instructions. (GP-2374, Issue #4210)</li>
    <li><I>Processors</I>. Added extended floating point instructions to V850 processor. (GP-2565, Issue #4453, #4481)</li>
    <li><I>Processors</I>. Corrected 6809 and H6309 processors Jump address calculations and fixed issue with Extended Address bit-pattern disassembly. (GP-2650, Issue #4630)</li>
    <li><I>Processors</I>. Corrected addresses for ARM Cortex interrupt vectors. (GP-2706, Issue #4638)</li>
    <li><I>Processors</I>. Added support for MIPS <span class="gcode">DSP</span> instructions. (GP-2775, Issue #4526)</li>
    <li><I>Processors</I>. Fixed operand ordering for M68000 <span class="gcode">abcd</span> and <span class="gcode">sbcd</span> instructions. (GP-2880, Issue #4183, #4189)</li>
    <li><I>Processors</I>. Fixed regression in x86 with disassembling the <span class="gcode">pause</span> instruction. (GP-2892)</li>
    <li><I>Processors</I>. Corrected semantics for TriCore <span class="gcode">nor.t</span> instruction. (GP-2895, Issue #4775)</li>
    <li><I>Processors</I>. Corrected issues in the SPARC language involving delay slots and ordering. (GP-2932, Issue #4805)</li>
    <li><I>Processors</I>. Corrected implementation of PowerPC <span class="gcode">fsel</span> instruction. (GP-2937, Issue #4664)</li>
    <li><I>Processors</I>. Fixed semantics of 65C02 <span class="gcode">TRB</span> and <span class="gcode">TSB</span> instructions. (GP-3039, Issue #4921)</li>
    <li><I>Processors</I>. Fixed operand parsing of ARM Neon <span class="gcode">vld</span> and <span class="gcode">vst</span> instructions. (GP-3043, Issue #4814)</li>
    <li><I>Processors</I>. Corrected x86 <span class="gcode">MOV REX, MOFFS64</span> disassembly with address size prefix. (GP-3078, Issue #4942)</li>
    <li><I>Processors</I>. Corrected x86 <span class="gcode">FBLD</span> instruction semantics. (GP-3079, Issue #2427)</li>
    <li><I>Processors</I>. Fixed ARM neon <span class="gcode">VMOV.U16</span> instruction decode. (GP-3096)</li>
    <li><I>Processors</I>. Fixed issue with ARM Thumb <span class="gcode">push &lbrace;register_list&rbrace;</span> not disassembling when the last two registers in the list are <span class="gcode">r2</span> and <span class="gcode">r3</span>. (GP-3132, Issue #5024)</li>
    <li><I>Processors</I>. Supplied additional register field support to AARCH64 <span class="gcode">MSR</span> instruction. (GP-3156)</li>
    <li><I>Processors</I>. Fixed issue with ARM Thumb Neon <span class="gcode">vqdmull</span> instruction not disassembling. (GP-3157, Issue #5053)</li>
    <li><I>Processors</I>. Fixed issue with HCS12 <span class="gcode">TSTA</span> instruction not clearing carry flag. (GP-3169, Issue #5067)</li>
    <li><I>Processors</I>. Fixed issue with M68000 processor having a varnode of zero size. (GP-3187, Issue #5093, #5094)</li>
    <li><I>Processors</I>. Corrected RISC-V <span class="gcode">jal</span>/<span class="gcode">jalr</span> instructions to be a call instead of <span class="gcode">goto</span>, when link register is <span class="gcode">T0</span>. (GP-3217, Issue #5092)</li>
    <li><I>Processors</I>. Fixed PowerPC branch-conditional-and-link semantics for assigning <span class="gcode">LR</span> register. (GP-3341, Issue #5218)</li>
    <li><I>Processors</I>. Fixed stack alignment in x86 far call instructions (GP-3398, Issue #1715, #1723)</li>
    <li><I>Scripting</I>. Fixed an issue that prevented the default script log file from getting used in the user's <span class="gcode">.ghidra</span> directory. (GP-2936)</li>
    <li><I>Scripting</I>. Fixed a bug in <span class="gcode">FlatProgramAPI.getLastInstruction()</span>. (GP-3198, Issue #5090)</li>
    <li><I>Scripting</I>. Improved how the interactive Python interpreter handles transactions.  This fixed an uncaught exception that occurred when <span class="gcode">GhidraScript.openProgram()</span> was called. (GP-3321, Issue #5215)</li>
    <li><I>Search</I>. Increased performance related to Search Results table markers. (GP-2828)</li>
    <li><I>Search</I>. Fixed exceptions in <span class="gcode">ReferenceUtils</span> when searching for structure members with no size. (GP-3283)</li>
    <li><I>Search</I>. Fixed bug that caused search highlights to sometimes disappear from the Listing when the user moves the cursor. (GP-3329)</li>
    <li><I>Sleigh</I>. Addressed a bug in the SLEIGH compiler that allowed inconsistent exporting of sizeless varnodes. (GP-3186)</li>
</ul>
</blockquote>

<H1 align="center">Ghidra 10.2.3 Change History (February 2023)</H1>
<blockquote><p><u><B>Improvements</B></u></p>
<ul>
    <li><I>Basic Infrastructure</I>. Addressed CVE-2023-22671 by removing <code>eval</code> usage from <code>launch.sh</code>. (GP-2987, Issue #4869, #4872)</li>
    <li><I>Build</I>. Ghidra's Windows native binaries can now be built using Microsoft C++ Build Tools. (GP-2786, Issue #1733, #4647)</li>
    <li><I>Build</I>. Providing better error reporting when a supported version of Visual Studio (2017+) cannot be found. (GP-2928)</li>
    <li><I>Decompiler</I>. Added fail-fast logic to improve efficiency of switch analysis for software breakpoints. (GP-2866)</li>
    <li><I>Decompiler</I>. Updated the limit of the <B>Auto Fill in Structure</B> action to take the larger of 0x1000 and the size of the structure. (GP-3020, Issue #4879)</li>
    <li><I>GUI</I>. Updated the Front End Project Table to allow users to change selected rows by clicking any already-selected row. (GP-3051)</li>
    <li><I>Processors</I>. Added ColdFire EMAC instruction variants. (GP-2197)</li>
    <li><I>Processors</I>. Added <code><B>volatile</B></code> and <code><B>size</B></code> attributes to individual default_symbols/symbol elements in pspec files. Symbols with these volatile and size attributes are treated as volatile by the Decompiler. (GP-2606)</li>
</ul>
</blockquote>
<blockquote><p><u><B>Bugs</B></u></p>
<ul>
    <li><I>Analysis</I>. Corrected RISC-V function start patterns.  The values of <code><B>totalbits</B></code> and <code><B>postbits</B></code> were set such that no patterns would ever match.  Call instructions split into call/jump based on return addressing saving in <code>RA</code>. (GP-2878)</li>
    <li><I>Analysis</I>. Corrected potentially bad constant propagation where the subtraction two unknown values can result in the placement of an erroneous memory reference. (GP-3066)</li>
    <li><I>Assembler</I>. Fixed parsing of 64-bit unsigned immediates. (GP-2789, Issue #4688)</li>
    <li><I>Assembler</I>. Fixed display and assembly of THUMB <code>tbb [pc, rm]</code> instruction. (GP-2946, Issue #4824)</li>
    <li><I>Debugger:Watches</I>. Fixed endless read loop in Watches pane when read results in error. (GP-2815)</li>
    <li><I>Decompiler</I>. Fixed Decompiler bug that can cause <code>Symbols... assigned to the same variable</code> exceptions. (GP-2859)</li>
    <li><I>Decompiler</I>. Fixed regression in handling of spacebase register values that cause a stack trace in the Decompiler for RISC-V.  Removed unnecessary spacebase settings in TriCore, MIPS, RISC-V. (GP-2905)</li>
    <li><I>Decompiler</I>. Fixed bug preventing some format conversions of negative constants in the Decompiler window. (GP-2927, Issue #3747)</li>
    <li><I>Decompiler</I>. Fixed error in dynamic hash algorithm which could cause the rename/retype actions in the Decompiler to fail. (GP-3014, Issue #193)</li>
    <li><I>Decompiler</I>. Fixed Decompiler marshaling parsing error for function prototypes with an <code>unknown</code> stack purge. (GP-3065)</li>
    <li><I>Decompiler</I>. Fixed bug causing switch analysis on x86 16-bit executables to fail. (GP-3075)</li>
    <li><I>Decompiler</I>. Fixed bug causing <code>Expecting unsigned integer attribute</code> exceptions when decompiling for architectures with a word size greater than 1 byte. (GP-3088)</li>
    <li><I>DWARF</I>. Fixed issue with DWARF not marking object-oriented methods as a <code>__thiscall</code>. (GP-2904)</li>
    <li><I>Exporter:XML</I>. Corrected XML export bug that improperly output custom property values, such as Analysis Times, which was causing failure at time of subsequent import. (GP-1453)</li>
    <li><I>GUI</I>. Updated the Structure Editor's <B>Create Structure from Selection</B> action to work around a focus issue experienced by some users. (GP-3069, Issue #4066)</li>
    <li><I>Importer</I>. Improved support for loading old-style DOS MZ binaries. (GP-2210, Issue #1876, #1892, #254, #4318)</li>
    <li><I>Importer:PE</I>. Fixed an issue that prevented PE ordinal symbols from getting their true names resolved during headless mode import. (GP-2947, Issue #4821)</li>
    <li><I>Importer:PE</I>. Fixed an issue with label addresses in the PeLoader that occurred when sections had an uninitialized padding block appended to their initialized block. (GP-2948, Issue #4815)</li>
    <li><I>Multi-User</I>. Fixed svrAdmin to handle projects that contain a space character in the name. (GP-2852, Issue #4750)</li>
    <li><I>PDB</I>. Corrected a PDB Universal analysis regression error in Ghidra 10.2.2 that caused an internal anonymous function definition name to be set on a function instead of the function symbol name. (GP-2864, Issue #4842)</li>
    <li><I>Processors</I>. Fixed pcode for the PowerPC <code>mtmsr</code> instruction. (GP-2245)</li>
    <li><I>Processors</I>. Corrected flag updates for the z80 <code>adc</code> instruction. (GP-2882, Issue #4553)</li>
    <li><I>Processors</I>. Set 8051 bit-mapped SFR register range to volatile. (GP-2910, Issue #3061)</li>
    <li><I>Processors</I>. Fixed issue with x86 <code>VEX</code> prefix colliding with the <code>LDS</code> instruction. (GP-2959, Issue #4832)</li>
    <li><I>Processors</I>. Corrected implementations of x86 <code>SHUFPS</code> and <code>PSHUFD</code> instructions in ia.sinc. (GP-3023, Issue #4868)</li>
    <li><I>Processors</I>. Fixed ARM Thumb issues with <code>ldr</code> instructions disassembling as incorrect variants. (GP-3083, Issue #4959)</li>
    <li><I>Version Tracking</I>. Fixed ArrayIndexOutOfBoundsException encountered when using HashedFunctionAddressCorrelation for version tracking. (GP-2758, Issue #4683)</li>
</ul>
</blockquote>

<H1 align="center">Ghidra 10.2.2 Change History (November 2022)</H1>
<blockquote><p><u><B>Bugs</B></u></p>
<ul>
    <li><I>Debugger</I>. Improved error reporting for failed GADP-based Debugger connections. (GP-994)</li>
    <li><I>Debugger:Breakpoints</I>. Fixed breakpoint margin display in the Listing for breakpoints spanning multiple lines (code units). (GP-2733)</li>
    <li><I>Debugger:GDB</I>. Fixed parsing of AArch64 vector registers in GDB connector. (GP-1459, Issue #3541)</li>
    <li><I>Disassembly</I>. Corrected regression error in Ghidra 10.2 which could prevent proper disassembly flow within overlay memory blocks. (GP-2800)</li>
    <li><I>Graphing</I>. Corrected code flow graph node rendering issue which improperly displayed HTML tags.  This was a regression error introduced with Ghidra 10.2. (GP-2842)</li>
    <li><I>PDB</I>. Fixed logic for overriding primary, public symbols on functions.  This will allow function definitions to be retrieved from mangled symbols when rich data types are not found with the global symbols. (GP-2838, Issue #4735)</li>
</ul>
</blockquote>

<H1 align="center">Ghidra 10.2.1 Change History (November 2022)</H1>
<blockquote><p><u><B>Improvements</B></u></p>
<ul>
    <li><I>Data Types</I>. Added performance improvements for Structure build-up and resolution when simplifying assumptions can be made. (GP-2777)</li>
</ul>
</blockquote>
<blockquote><p><u><B>Bugs</B></u></p>
<ul>
    <li><I>DB</I>. Corrected database table key iterator regression error introduced with Ghidra 10.2 which could result in a NullPointerException.  An internal long key iterator transition may fail under certain conditions when the iterator has already been exhausted. (GP-2805, Issue #4716)</li>
    <li><I>Debugger</I>. Removed a timeout when prompting the user for Debugger launch options. (GP-2722)</li>
    <li><I>Debugger:Agents</I>. Fixed error text rendering in Debugger agent windows. (GP-2724)</li>
    <li><I>Decompiler</I>. Fixed a bug in the Decompiler preventing local variables outside of the normal stack region from being renamed or retyped. (GP-2818)</li>
    <li><I>Disassembly</I>. Corrected regression error in Ghidra 10.2 which prevented proper disassembly flow within overlay memory blocks. (GP-2800)</li>
    <li><I>GUI</I>. Fixed table column filtering to correctly match input data containing newline characters when using the <B>Contains</B> string column filter. (GP-2797, Issue #4722)</li>
    <li><I>GUI</I>. Fixed the Front End's running Tool Button tooltip text to include the tool's title. (GP-2810)</li>
    <li><I>Importer:Mach-O</I>. Fixed an issue that prevented some Mach-O binaries from being imported if there were unexpected issues while creating the Program Tree. (GP-2802, Issue #4724)</li>
    <li><I>Importer:Mach-O</I>. Fixed an issue that prevented some Mach-O binaries from being imported if they did not define a __LINKEDIT segment. (GP-2803)</li>
    <li><I>Importer:PE</I>. Fixed .Net/x86 disassembly protection code which prevents disassembly of CLI code in an x86 processor. (GP-2807)</li>
    <li><I>Processors</I>. Corrected ARMv5 disassembly regression errors (GP-2812, Issue #4717)</li>
</ul>
</blockquote>

<H1 align="center">Ghidra 10.2 Change History (November 2022)</H1>
<blockquote><p><u><B>New Features</B></u></p>
<ul>
    <li><I>Basic Infrastructure</I>. Ghidra now requires JDK 17 to run. (GP-2132, Issue #4316)</li>
    <li><I>Build</I>. A CycloneDX Software Bill of Materials (SBOM) is now included with a Ghidra distribution. (GP-1782)</li>
    <li><I>Data Types</I>. Added <code>getSelectedDatatypes()</code> method to DataTypeManagerService to get a list of selected data types in the data type tree. (GP-1631)</li>
    <li><I>Debugger</I>. Added a basic Frida debugger connector. (GP-1681, Issue #3134)</li>
    <li><I>Debugger</I>. Added cursor header to <B>Plot</B> columns in Debugger's experimental Model window. (GP-2067)</li>
    <li><I>Debugger</I>. Added <B>Choose Platform</B> actions to Debugger. (GP-2163)</li>
    <li><I>Debugger</I>. Enabled debugging using Frida on USB/remote devices. (GP-2312)</li>
    <li><I>Debugger</I>. Added <B>Map Manually</B> action to <B>Modules</B> window. (GP-2474)</li>
    <li><I>Debugger:Emulator</I>. Userops can be defined using Sleigh or <B>Structured Sleigh</B>. (GP-1205)</li>
    <li><I>Debugger:Emulator</I>. Added Linux x86 (64- and 32-bit) <code><B>read</B></code>, <code><B>write</B></code>, <code><B>open</B></code>, <code><B>close</B></code>, <code><B>exit</B></code>, and <code><B>exit_group</B></code> syscalls to the emulation API. (GP-1208)</li>
    <li><I>Debugger:Emulator</I>. Added <B>Taint Analyzer</B> (development prototype). (GP-1230)</li>
    <li><I>Debugger:Emulator</I>. Added a <B>skip instruction</B> button to the emulator (Threads pane). (GP-2062)</li>
    <li><I>Debugger:Emulator</I>. Added prototype <code>EmuDeskCheckScript</code> to emulate and produce a table of expression values for each step. (GP-2289)</li>
    <li><I>Debugger:Listing</I>. Added toggle to automatically synchronize static and dynamic program selections; added actions to manually transfer selections between static and dynamic listings. (GP-1451)</li>
    <li><I>Debugger:Listing</I>. Can now have the Dynamic Listing and Memory windows follow the address of a watch. (GP-2581)</li>
    <li><I>Debugger:Trace</I>. Added Objects Manager to Trace API. (GP-1386)</li>
    <li><I>Debugger:Trace</I>. Added API for user-defined property maps on traces. (GP-2191)</li>
    <li><I>Debugger:Watches</I>. Added data type settings to Registers and Watches windows. (GP-1984)</li>
    <li><I>Decompiler</I>. A new Decompiler highlight service has been added, allowing clients to create highlights in the form of background colors for the syntax tokens in the Decompiler UI.  Highlights apply to a full token and not strings of text.  To highlight a token, you create a <code>CTokenHighlightMatcher</code> and pass it to the <code>createHighlighter()</code> method of the highlighter service.  There is no limit to the number of highlighters that may be installed, and if multiple highlights overlap, their colors will blend. (GP-1435, Issue #2313)</li>
    <li><I>Decompiler</I>. The Decompiler now fully supports union data-types. (GP-1518)</li>
    <li><I>Decompiler</I>. A new <B>Create Relative Pointer</B> action is available from the main Decompiler pop-up menu.  It creates pointers that have an offset relative to another data-type&mdash;typically a structure.  Applying the action, the Decompiler can then follow and label accesses into the structure. (GP-1645)</li>
    <li><I>Decompiler</I>. The Format setting on a Typedef of an integer data-type now affects the display of constants in Decompiler output. A non-default setting forces the format for displaying constants of that data-type. (GP-1652, Issue #3004)</li>
    <li><I>Decompiler</I>. Decompiler line number margin now has fixed horizontal position. (GP-2446)</li>
    <li><I>Extensions</I>. A MachineLearning extension has been added. This contains a plugin for finding code and functions in a binary by training on functions which have already been found. (GP-2204)</li>
    <li><I>Importer</I>. Updated support for Android version 12.x (S): OAT v199, Vendor Boot Image v4, and FPBK v2. (GP-1461)</li>
    <li><I>Importer</I>. Created new <B>Dump File Loader</B> for Windows dump file formats. (GP-1864)</li>
    <li><I>Importer</I>. Added support for APPORT-style crash dumps (Ubuntu) to Dump File Loader. (GP-2049)</li>
    <li><I>Importer</I>. Added support for Android formats (ART, OAT, ODEX, DEX, CDEX, VDEX) and Dalvik VM Sleigh modules for each major Android release up to version 13.x (T). (GP-2060)</li>
    <li><I>Listing</I>. Added right-click menu <B>Patch Data</B> action for modifying bytes in the listing according to the unit's data type. (GP-1684)</li>
    <li><I>Scripting</I>. Added FlatDebuggerAPI interface for GhidraScripts to more easily access the Debugger's API. (GP-2189)</li>
</ul>
</blockquote>
<blockquote><p><u><B>Improvements</B></u></p>
<ul>
    <li><I>Analysis</I>. Added detection of <code>pop</code> to the PC as a return in ARM binaries. (GP-634)</li>
    <li><I>Analysis</I>. PointerTypedefs are now used for Relative Pointers in the Objective_C2 small method data structures.  Previously, the value was a DWORD and did not resolve to an address. (GP-1427)</li>
    <li><I>Analysis</I>. The Variadic Function Signature Override Analyzer now handles offcut references to format strings. (GP-2048, Issue #4256)</li>
    <li><I>Analysis</I>. Added to the list of known non-returning windows functions. (GP-2069, Issue #4181)</li>
    <li><I>Analysis</I>. Improved branch-through-a-register <B>return</B> pattern for ARM processor thunk creation. (GP-2391)</li>
    <li><I>Analysis</I>. Enabled <B>Assume Contiguous Functions Only</B> option in Shared Return Calls analyzer. Disabled by default for ARM processors because of use of <code>BL</code> for long jumps in Thumb mode. (GP-2534, Issue #4573, #678)</li>
    <li><I>API</I>. Added the ability to search for enum member usage. (GP-1514, Issue #1967)</li>
    <li><I>API</I>. Added recursive form of <code>Function.getFunctionThunkAddresses()</code> method. (GP-1692)</li>
    <li><I>API</I>. Improved namespace-based data type searching.  Also added ability to specify a preferred root category for such searches on the Program API, which can be manipulated via the Program Information options panel. (GP-1994)</li>
    <li><I>API</I>. Eliminated methods from <code>AddressMap</code> interface which are intended for internal use only. (GP-2002)</li>
    <li><I>API</I>. Removed deprecated methods from ProgramPlugin. (GP-2663)</li>
    <li><I>Basic Infrastructure</I>. Updated Gson to 2.9.0. (GP-1909, Issue #3992)</li>
    <li><I>Basic Infrastructure</I>. Updated commons-compress to 1.21. (GP-1910)</li>
    <li><I>Basic Infrastructure</I>. Updated commons-io to 2.11.0. (GP-1911)</li>
    <li><I>Basic Infrastructure</I>. Upgraded commons-text to 1.10.0 and commons-lang3 to 3.12.0. (GP-2753)</li>
    <li><I>C Parsing</I>. Any open archives in the data type manager will be searched for any missing data types during parsing.  In addition when parsing header files with open archives there are new options to Use, Don't Use, or Cancel parsing. (GP-1336, Issue #2119, #2885, #716)</li>
    <li><I>Data Types</I>. Updated the Data Types view <B>Paste</B> action to work when pasting on a data type node. (GP-1627, Issue #3568)</li>
    <li><I>Data Types</I>. Added a <B>Home</B> action to the Structure Editor to allow users to show the structure data type in the Data Types tree.  Added the <B>Show In Data Type Manager</B> action to the data type nodes in the Data Types tree to allow users to associate types with an archive. (GP-1913)</li>
    <li><I>Data Types</I>. Modified <code>DataType.clone(DatatypeManager)</code> method implementations for <code>StructureDB</code>, <code>UnionDB</code>, <code>FunctionDefinitionDB</code>, and <code>EnumDB</code> to adhere to method documentation which states that a datatype will return the instance itself if its <code>DataTypeManager</code> is the same as the parameter specified. (GP-2236)</li>
    <li><I>DB</I>. Added persistent <B>Name</B> column to Breakpoints table. (GP-1559, Issue #3679)</li>
    <li><I>Debugger</I>. Added GDB connector support for Windows (tested with GDB 11.1 on msys64). (GP-869, Issue #2908)</li>
    <li><I>Debugger</I>. Debugger and Python Interpreter windows now support ANSI colors and styles. (GP-887, Issue #4176)</li>
    <li><I>Debugger</I>. Revised Debugger icons for visual contrast and action clarity. (GP-1538)</li>
    <li><I>Debugger</I>. Added <B>Watch</B> action to Listing, Memory, and Registers context menus. (GP-1560, Issue #3680)</li>
    <li><I>Debugger</I>. Dynamic Listing, Bytes, Registers, and Watches windows all now support editing the machine state. Edits can be directed to the Target, the Trace, or the Emulator. (GP-1584)</li>
    <li><I>Debugger</I>. Upgraded SWIG to match lldb v14. (GP-1760)</li>
    <li><I>Debugger</I>. Added <B>Symbol</B> column to Watches window. (GP-1773)</li>
    <li><I>Debugger</I>. Reworked the breakpoint state system and icons. (GP-1821)</li>
    <li><I>Debugger</I>. Improved breakpoint initialization. (GP-1824)</li>
    <li><I>Debugger</I>. Updated program user data to preserve command-line arguments. (GP-1886)</li>
    <li><I>Debugger</I>. Minimized the number of registers read for dbgeng; eliminated error messages. (GP-1898)</li>
    <li><I>Debugger</I>. Fixed issues with Debugger when dbgeng/dbgmodel connectors load/debug crash dumps. (GP-2023)</li>
    <li><I>Debugger</I>. Improved launcher logic for detecting and remedying trace recording and module mapping failures. (GP-2036)</li>
    <li><I>Debugger</I>. Added remote options to IN-VM dbgeng and dbgmodel connectors, like those for the GADP variants. (GP-2135)</li>
    <li><I>Debugger</I>. Added <B>Track Program Counter (by Stack)</B> and <B>Track Program Counter (by Register)</B> options to Dynamic Listing and Dynamic Memory. (GP-2462)</li>
    <li><I>Debugger:Breakpoints</I>. Improved error feedback for some failures in toggling/enabling (unmappable) breakpoints. (GP-2243)</li>
    <li><I>Debugger:Emulator</I>. Userop library callbacks can now receive more context via annotated parameters. (GP-1203)</li>
    <li><I>Debugger:Emulator</I>. Changed the display of the PcodeStepper window to look like the PCode field in the Listing windows. (GP-1535)</li>
    <li><I>Debugger:GDB</I>. Updated the GDB connector to support version 12.1. Now parses flags for memory map. (GP-2089, Issue #4297)</li>
    <li><I>Debugger:GDB</I>. Added GDB scripts for getting memory map of remote Wine win32 targets. (GP-2495, Issue #4546)</li>
    <li><I>Debugger:GDB</I>. Ported GDB connector to use JNA. (GP-2619)</li>
    <li><I>Debugger:Listing</I>. Added marker margin and overview to the Dynamic Listing window. (GP-1433)</li>
    <li><I>Debugger:Listing</I>. Changed priority so that PC highlights are over breakpoint highlights. (GP-2294)</li>
    <li><I>Debugger:Mappings</I>. Added <B>Map Regions</B> actions to Debugger. (GP-1231)</li>
    <li><I>Debugger:Objects</I>. Creating fewer unsolicited error popups in Debugger by logging these errors to the console. (GP-1329, Issue #3452)</li>
    <li><I>Debugger:Trace</I>. Made address encoding in traces more compact. (GP-2437)</li>
    <li><I>Debugger:Trace</I>. Handling Trace version exceptions more gracefully. Presents a clearer error dialog. (GP-2452)</li>
    <li><I>Debugger:Trace</I>. Simplified Trace database API: <B>Register</B> spaces are no longer a special interface. (GP-2479)</li>
    <li><I>Debugger:Trace</I>. Optimized trace memory access for Dynamic Listing and Memory windows. (GP-2593)</li>
    <li><I>Debugger:Trace</I>. Fixed a possible deadlock in the Trace database. (GP-2595)</li>
    <li><I>Debugger:Watches</I>. <B>Repr</B> column is now modifiable in Registers and Watches windows for supported data types. (GP-1881)</li>
    <li><I>Decompiler</I>. A prototype model, as defined by the <prototype> tag in a compiler specification, can now be assigned multiple names.  The names can be used interchangeably when assigning a calling convention to a function. (GP-1653)</li>
    <li><I>Decompiler</I>. The Decompiler now uses proper syntax when extracting small fields from packed structures. (GP-1683)</li>
    <li><I>Decompiler</I>. Added Decompiler support for the address space attribute on pointer typedefs. (GP-1932)</li>
    <li><I>Decompiler</I>. Updated windows calling convention on x64 to properly handle functions with both floating-point and integer/pointer arguments.  Users should re-import and analyze programs with such functions. (GP-1954, Issue #1480, #2952)</li>
    <li><I>Decompiler</I>. The Decompiler better simplifies multi-part boolean expressions that are built using a status register. (GP-2281, Issue #620)</li>
    <li><I>Decompiler</I>. The Decompiler now supports simplification of more forms of optimized modulo/remainder calculations. (GP-2292, Issue #4322)</li>
    <li><I>Decompiler</I>. The Decompiler now uses a new, more efficient protocol to communicate with the rest of Ghidra. (GP-2358)</li>
    <li><I>Decompiler</I>. Auto-generated stack variable names in the Decompiler now show offsets in hexadecimal format. (GP-2486, Issue #4442)</li>
    <li><I>Decompiler</I>. Changed the Decompiler <B>Rename Function</B> action so that if applied to a thunk, the underlying thunked function is renamed instead of the thunk itself.  In most cases the rename should be applied to the thunked-function instead of the thunk itself. (GP-2520, Issue #4566)</li>
    <li><I>Decompiler</I>. The Decompiler now displays reads from or writes to volatile variables using simple assignment syntax instead of functional syntax. (GP-2578)</li>
    <li><I>Decompiler</I>. Improved handling of <code>_guard_dispatch_icall</code> and other functions that inject an indirect call into the Decompiler. (GP-2601, Issue #1719, #4591)</li>
    <li><I>Demangler</I>. Added second-pass processing for non-standard Microsoft Demangler forms found in LLVM mangling scheme. (GP-1725, Issue #1162)</li>
    <li><I>Demangler</I>. Improved post-analysis pop-up error messaging. (GP-2429)</li>
    <li><I>Demangler</I>. Changed symbol demanglers to place anonymous function definitions into the <code>/Demangler/!_anon_funcs_</code> category using a revised naming convention consistent with PDB with a <code>_func_</code> name prefix.  Changed DWARF to use this same anonymous function definition name prefix. (GP-2557)</li>
    <li><I>Demangler</I>. Improved demangling after <B>File -> Load PDB File...</B> task by kicking off standard demangler analyzer instead of the DemanglerCmd. This should improve consistency in Demangler output across a program. (GP-2648)</li>
    <li><I>DWARF</I>. Relaxed DWARF analyzer's requirement of a register-mapping file in order to allow attempted import of function definitions when missing. (GP-1833)</li>
    <li><I>DWARF</I>. Added support for compressed DWARF sections. (GP-2106)</li>
    <li><I>DWARF</I>. Improve DWARFs handling of explicitly sized data types (e.g., int32_t).  Added <B>Try To Pack Structs</B> option to DWARF analyzer to enable packing of structure/union data types created by the analyzer. (GP-2526)</li>
    <li><I>Eclipse Integration</I>. The GhidraDev Eclipse plugin now requires Java 17 and Eclipse 2021-12 4.22 or later. (GP-2398, Issue #4496)</li>
    <li><I>Exporter</I>. Updated IDA Pro plugins compatibility for python 3. The plugins remain compatible with python 2. (GP-2567, Issue #1327, #1618, #2642)</li>
    <li><I>Graphing</I>. Created <B>Graph Data Flow</B> action in Decompiler window menu and renamed existing graph action from <B>Graph AST</B> to <B>Graph Control Flow</B>. (GP-1704)</li>
    <li><I>GUI</I>. Fixed dialog text and icon clipping seen on some Linux distributions. (GP-1534, Issue #1506)</li>
    <li><I>GUI</I>. Updated Enum Editor to scroll while using the arrow keys when in edit mode. (GP-1553, Issue #3669)</li>
    <li><I>GUI</I>. Fixed ordering of automatic comments in the Listing. (GP-1568, Issue #3648)</li>
    <li><I>GUI</I>. Updated the UI to allow for setting equate values when an enum has more than one name mapped to a particular value. (GP-1572, Issue #3618)</li>
    <li><I>GUI</I>. Add <B>Shift</B>-key modifier to Previous/Next toolbar buttons that invert the action to jump the cursor to functions, labels, data items, etc. (GP-1578)</li>
    <li><I>GUI</I>. Updated the GTree to allow new nodes to be created while a filter is applied. (GP-1615)</li>
    <li><I>GUI</I>. Added new <B>Mark and Select</B> action that allows users to create selections in a two-step process. The first time the action is invoked, the current location is <B>marked</B>. The next time the action is invoked, a selection is created from the marked location to the current location. (GP-1616)</li>
    <li><I>GUI</I>. The <B>Go To...</B> dialog now supports navigating to file offsets with a <code><B>file(n)</B></code> search string, and a new File Offset field has been added to the Listing (disabled by default). (GP-1756)</li>
    <li><I>GUI</I>. Created the new Script Quick Launcher Dialog. (GP-1826)</li>
    <li><I>GUI</I>. Selecting nodes in the ProjectDataTreePanel was made more efficient. This is only noticeable when there is a very large number of programs in a project. (GP-1931)</li>
    <li><I>GUI</I>. Added the <B>Offset</B> table column to the Structure Editor.  This column is hidden by default, but can be added by right-clicking on the table's column header. (GP-1943, Issue #3850)</li>
    <li><I>GUI</I>. To reduce memory consumption, revised Symbol Table GUI to avoid hanging onto symbol objects.  In some cases this may reduce the speed with which the symbol table updates. (GP-2030)</li>
    <li><I>GUI</I>. Changed Structure Editor <B>Duplicate Component</B> and <B>Duplicate Multiple of Component...</B> actions to <B>select</B> the last component; this allows for repeated uses of the action via key-binding. (GP-2095, Issue #4229)</li>
    <li><I>GUI</I>. Updated the Data Type Manager's right-click menu <B>Replace...</B> action on a selected data type to have a clearer purpose by prompting the user to confirm the replace action. (GP-2405, Issue #4463)</li>
    <li><I>GUI</I>. Updated popup menu key event processing to not apply to combo boxes. (GP-2491, Issue #4545)</li>
    <li><I>GUI</I>. Added the new <B>Does Not Match Regex</B> table column filter to allow clients to show table rows that do not match the given regular expression. (GP-2582, Issue #4608)</li>
    <li><I>GUI</I>. Added the <code>TableChooserExecutor.executeInBulk()</code> method to allow script writers to process multiple selected table rows themselves instead of one at a time. (GP-2583, Issue #4609)</li>
    <li><I>GUI</I>. Updated the XRefs Dialog to allow users to show xrefs to thunk functions. (GP-2594, Issue #3851)</li>
    <li><I>GUI</I>. Updated the Search Memory Dialog to allow users to paste hex values that begin with <code><B>0x</B></code>. (GP-2622, Issue #4623)</li>
    <li><I>GUI</I>. Updated the Instruction Info window to allow users to select and copy cells from the table. (GP-2631, Issue #4626)</li>
    <li><I>GUI</I>. Updated the Component Providers' drop-down button to allow users to add a keybinding to show the popup menu. (GP-2637, Issue #4625)</li>
    <li><I>Importer</I>. Added support for Android Multi-DEX. Created new Android APK loader to load all DEX files at one time and link the <code><B>method_lookup</B></code> sections using <B>external references</B>.  The APK loader uses the manifest file to determine the Android version. (GP-275, Issue #4276)</li>
    <li><I>Importer</I>. Permanently removed the ContinuesInterceptor, which had allowed the import process to proceed past uncaught exceptions that could be encountered while parsing corrupted headers. (GP-1907)</li>
    <li><I>Importer</I>. The NeLoader now creates memory blocks using the FileBytes API which enables the file offset Listing field and lookup in the Goto dialog. (GP-2521, Issue #4565, #4570)</li>
    <li><I>Importer</I>. Redesigned the Importer's load library option set.  The user now has finer-grained control over where libraries are loaded from, as well as how many libraries are loaded. (GP-2541)</li>
    <li><I>Importer</I>. Redesigned the Importer's load library option set.  The user now has finer-grained control over where already-imported libraries are searched for in the project, as well as where newly imported libraries are saved to in the project. (GP-2604)</li>
    <li><I>Importer:ELF</I>. Added ELF import-processing of symbols defined in the <code>.gnu_debugdata</code> section. (GP-1592, Issue #1659)</li>
    <li><I>Importer:ELF</I>. Improved ELF import-processing and logging of missing/truncated headers. (GP-1605, Issue #3507)</li>
    <li><I>Importer:ELF</I>. Improved ELF Importer to handle extended program and section header counts <code>(e_phnum, e_shnum)</code> which may be encountered for large core/memory dump files in ELF format. (GP-1936, Issue #4149)</li>
    <li><I>Importer:Mach-O</I>. We now discover more Mach-O functions via the LC_FUNCTION_STARTS load command. (GP-1460, Issue #3586, #3668)</li>
    <li><I>Importer:Mach-O</I>. Improved symbols and exports in Mach-O and DYLD shared cache files. (GP-2008, Issue #2932)</li>
    <li><I>Importer:Mach-O</I>. Improved the Program Tree for Mach-O, DYLD shared cache, and PRELINK files. (GP-2019)</li>
    <li><I>Importer:Mach-O</I>. The Objective-C Class Analyzer now works with dyld_shared_cache files. (GP-2113)</li>
    <li><I>Importer:Mach-O</I>. Improved processing to support changes in iOS 16 and macOS 13 dyld_shared_cache format. (GP-2176, Issue #4346, #4406)</li>
    <li><I>Importer:PE</I>. The Thread Environment Block (TEB) is now automatically populated by an analyzer for PE format programs on x86. (GP-527)</li>
    <li><I>Importer:PE</I>. Added label for <code>_tls_index</code>. (GP-2166, Issue #4285)</li>
    <li><I>Jython</I>. Upgraded Jython to 2.7.3. (GP-2324, Issue #107)</li>
    <li><I>Listing</I>. Added trailing comma on global arrays display. (GP-2165, Issue #4261, #4287)</li>
    <li><I>Multi-User</I>. Improved svrAdmin command for controlling repository access.  Eliminated <code><B>-admin</B></code> option while adding <code><B>-grant</B></code> and <code><B>-revoke</B></code> options. (GP-394, Issue #1703, #2467)</li>
    <li><I>Multi-User</I>. Eliminated use of <B>ganymed-ssh2</B> library in favor of Bouncy Castle library suite.  Improved Ghidra Server SSH authentication error reporting. (GP-1769)</li>
    <li><I>Multi-User</I>. The <code>svrAdmin(.bat)</code> script will now run under a JRE in addition to a JDK. (GP-2301, Issue #4394)</li>
    <li><I>Multi-User</I>. Improved <code>Edit Shared Project Information</code> capability which now handles case where user may have checked-out files and is unable to checkin or terminate them when unable to connect to old server (e.g., server name or IP address has changed). (GP-2496)</li>
    <li><I>Multi-User</I>. Upgraded Ghidra Server service wrapper (YAJSW) to 13.05. (GP-2754)</li>
    <li><I>PDB</I>. Crafted additional mechanisms for determining segment addresses. (GP-1777, Issue #3993)</li>
    <li><I>PDB</I>. When PDB has no type information, changed processing order so that mangled symbols become primary symbols, encouraging recovery of their limited type information. (GP-2385, Issue #4489)</li>
    <li><I>PDB</I>. Improved PDB Universal function creation, to include <code>unknown</code> calling convention when a custom calling convention is indicated and <code>noreturn</code> when indicated for a function.  Also added initial support for some MIPS and IA64 processors called out in PDB. (GP-2505)</li>
    <li><I>Processors</I>. Implemented semantics for x86/64 <code>POPCNT</code> instruction. (GP-1780)</li>
    <li><I>Processors</I>. Updated ARM Processor specification to V9.3. (GP-1790, Issue #4655)</li>
    <li><I>Processors</I>. Added conditional assignment macro to x86 processor module. (GP-1819)</li>
    <li><I>Processors</I>. Implemented Coldfire <code>bitrev</code>, <code>byterev</code>, and <code>ff1</code> instructions. (GP-2195, Issue #4270)</li>
    <li><I>Processors</I>. Generalized the 6502 processor spec file. (GP-2332, Issue #1533, #3434)</li>
    <li><I>Processors</I>. Added SLEIGH support for <code>inst_next2</code>, which can be used to implement conditional skip-next-instruction cases in the language spec. (GP-2480)</li>
    <li><I>Processors</I>. Added <code>mips-eabi</code> compiler specification. (GP-2734, Issue #3633, #3634)</li>
    <li><I>References</I>. Added support for use of <code>Pointer-Typedef</code> with <B>Offset</B> setting to signal creation of an OffsetReference.  Modified ELF relocation handler to create such pointers for certain relocation types known to be associated which offset-data pointers.  Improved Listing operand markup for rendering of OffsetReferences.  Took special measures for such data references into the <code>EXTERNAL</code> memory block to remedy <B>XRef</B> and navigation issues. (GP-1036)</li>
    <li><I>References</I>. Reference-finding actions in the Decompiler now work properly when applied to global variables. (GP-1880)</li>
    <li><I>References</I>. <code>CALLOTHER_OVERRIDE_CALL</code> references now cause the inputs of the original CALLOTHER op to be discarded. (GP-2206, Issue #3665, #3936)</li>
    <li><I>Scripting</I>. Upgraded Apache Felix to 7.0.3. (GP-1326, Issue #3450)</li>
    <li><I>Scripting</I>. Improved class recovery discovery mechanisms for determining deleting destructors and clones. (GP-1581)</li>
    <li><I>Scripting</I>. ApplyClassFunctionDefinitionUpdatesScript has been improved to allow users to choose function definition(s) from the Data Type Manager to apply updates from. Previously, users had to put a cursor somewhere in the related class and possibly get possibly unwanted updates from unchanged definitions in selected class(es). (GP-1660)</li>
    <li><I>Scripting</I>. Added a search filter to <code>RunYARAFromGhidra.py</code> to include <B>.yara</B> files. (GP-1794)</li>
    <li><I>Scripting</I>. <code>RecoverClassesFromRTTIScript</code> has been updated to make use of the new shifted pointer data types where applicable. (GP-1947)</li>
    <li><I>Scripting</I>. Updated <code>RecoverClassesFromRTTIScript</code> to prevent it from running more than once on the same program. (GP-1962)</li>
    <li><I>Scripting</I>. Added <code>FixElfExternalOffsetDataRelocationScript</code> to be used in updating <B>EXTERNAL</B> offset data relocations flagged by an <B>ELF Relocation</B> ERROR bookmark.  These locations now support the use of an offset pointer-typedef and a resulting offset-reference. (GP-1963)</li>
    <li><I>Scripting</I>. The <code>RecoverClassesFromRTTIScript</code> has been updated to make use of the new program setting allowing use of a preferred data type category for class structure assignment. Due to this change, there is no longer any need to remove existing class structures in order to use those created by this script, so all code related to replacing, other class structures, has been removed. (GP-2010)</li>
    <li><I>Scripting</I>. Added <code>CallotherCensusScript</code>, which determines the most frequent instructions with (partially) unimplemented semantics in a single program or across an entire repository. (GP-2072)</li>
    <li><I>Scripting</I>. Improved <code>RecoverClassesFromRTTIScript</code> to distinguish between and name deleting destructors as either scalar or vector ones or both in Windows programs. (GP-2075)</li>
    <li><I>Scripting</I>. Updated the Script Manager to not close dialogs when the manager is closed. (GP-2216, Issue #4363)</li>
    <li><I>Scripting</I>. Added <code>createNamespace</code> and <code>createClass</code> methods to <code>FlatProgramAPI</code> for Ghidra script use. (GP-2482, Issue #4446)</li>
    <li><I>Search</I>. Added the ability to search for structure fields by offset. (GP-1556)</li>
    <li><I>Search</I>. Added <B>Navigate to Matching Byte Values</B> action to the main toolbar to find the next matching byte value of the item under the cursor. (GP-1679)</li>
    <li><I>Testing</I>. Upgraded hamcrest to 2.2. (GP-1993)</li>
    <li><I>Testing</I>. Upgraded pcodetest build scripts to python 3. (GP-2138, Issue #4307)</li>
    <li><I>Testing</I>. Upgraded Jacoco to 0.8.8. (GP-2208)</li>
</ul>
</blockquote>
<blockquote><p><u><B>Bugs</B></u></p>
<ul>
    <li><I>Analysis</I>. Fixed <B>Windows x86 PE RTTI Analyzer</B> to not duplicate labels on type_info vftables when PDB is present. (GP-854)</li>
    <li><I>Analysis</I>. Fixed long-standing issue with incorrectly named RTTI Type Descriptor symbols; also added correct class namespace. (GP-1703)</li>
    <li><I>Analysis</I>. Fixed issue where, when opening an non-analyzed program with one tool and that tool is connected to another tool, multiple ask-to-analyze dialogs would appear. (GP-1860)</li>
    <li><I>Analysis</I>. The Java Analyzer now parses MethodParameters attributes and gracefully handles unknown or unsupported attributes instead of throwing a RuntimeException. (GP-2012, Issue #4089)</li>
    <li><I>Analysis</I>. The Variadic Function Signature Override analyzer now handles wide-character format strings which are not defined data. (GP-2016, Issue #4165)</li>
    <li><I>Analysis</I>. Improved heuristics used to find strings in the Variadic Function Signature Override analyzer. (GP-2070, Issue #4154, #4281)</li>
    <li><I>Analysis</I>. Improved forced thunk creation from function start patterns files and fixed NullPointerException when thunk analysis got ahead of disassembly. (GP-2378, Issue #4369)</li>
    <li><I>Analysis</I>. Fixed bug in Variadic Function Signature Override analyzer involving examining too many function arguments. (GP-2384, Issue #4478)</li>
    <li><I>Analysis</I>. Changed Analysis to not mark class methods as noreturn unless they are included in the non returning function list as a mangled name. (GP-2471, Issue #2130, #4531)</li>
    <li><I>Analysis</I>. Added switching function identification for ARM RealView compiler. (GP-2504)</li>
    <li><I>Analysis</I>. Fixed an IllegalStateException in the FunctionStartAnalyzer that could occur for ARM thumb binaries. (GP-2543)</li>
    <li><I>Analysis</I>. Corrected Decompiler Switch Analysis issue which could prevent proper function body fixup to include switch code. (GP-2554)</li>
    <li><I>Analysis</I>. Fixed code to use the functions calling convention when computing the stack purge. X86 16-bit binaries now correctly display the correct value in the stack depth listing field. (GP-2683, Issue #4294)</li>
    <li><I>API</I>. Fixed issue where storing a register context across the entire address space had issues if the image base was a non-zero value. There were also numerous other issues that were uncovered, related to this context/image-base issue change, that were also fixed. (GP-1778)</li>
    <li><I>API</I>. Corrected improper instruction context read which could cause issues with delay-slot instructions that rely on context. (GP-2094, Issue #4259)</li>
    <li><I>Assembler</I>. Fixed issue with assembler referring to external functions via the IAT or PLT. (GP-615, Issue #2670)</li>
    <li><I>Assembler</I>. Refactored Assembler. Fixed issue assembling for x64 in 32-bit compatibility mode. (GP-1426)</li>
    <li><I>Assembler</I>. Made Assembler fields obey Listing Display font settings. (GP-1664)</li>
    <li><I>Basic Infrastructure</I>. Fixed an IllegalArgumentException that occurred when initializing 1-byte uninitialized memory blocks. (GP-2523)</li>
    <li><I>C Parsing</I>. Fixed numerous errors in C-Parser, including updated C specification syntax, macros with varargs, anonymous arrays of function pointers, and array definitions.  Also providing better error handling.  In addition data types in open archives can be used during parsing. (GP-1979, Issue #1455, #1784, #1940, #3908, #3996, #4184, #4377, #4491, #4517)</li>
    <li><I>CParser</I>. C-Parser handles arrays of function pointers and anonymous function signatures correctly. (GP-2258, Issue #3908, #4351)</li>
    <li><I>CParser</I>. C-Parser now accepts <code><B>static_assert</B></code> keyword in more places, such as within structure definitions. (GP-2273, Issue #4401)</li>
    <li><I>CParser</I>. C-Parser grammar fixed to parse <code><B>#pragma</B></code> keyword in more places such as within enum declarations. (GP-2646, Issue #4628)</li>
    <li><I>CParser</I>. C-Parser now defines a placeholder structure name early in parsing. (GP-2692, Issue #3505)</li>
    <li><I>CParser</I>. Fixed expansion of macros with missing arguments, concatenated string constants, const after type specification, and <code><B>#pragma</B></code> found in function calls. (GP-2746, Issue #2896, #4660, #4676, #4677)</li>
    <li><I>Data Types</I>. Added support for pointer typedefs with various settings. (GP-1403)</li>
    <li><I>Data Types</I>. Corrected issues within structure/union editor when specifying a component whose datatype is a pointer to the edited structure (i.e., pointer-to-self). (GP-2134, Issue #3721)</li>
    <li><I>Data Types</I>. Added validation to EnumDataType.setLength(). (GP-2689, Issue #4654)</li>
    <li><I>DB</I>. Corrected JVM shutdown issue which could cause database recovery files to be discarded. (GP-1787, Issue #3994)</li>
    <li><I>Debugger</I>. Fixed occasional, spurious goto-PC when navigating in Debugger listing. (GP-385)</li>
    <li><I>Debugger</I>. Eliminated redundant calls to startRecording. (GP-1443, Issue #3559)</li>
    <li><I>Debugger</I>. Fixed compatibility issue with GDB 11 regarding module and section list. (GP-1666)</li>
    <li><I>Debugger</I>. Corrected Debugger address space mismatch and NullPointerException errors. (GP-1757, Issue #4022, #4023, #4024, #4025)</li>
    <li><I>Debugger</I>. Fixed for numerous failures in dbgeng. (GP-1812, Issue #4059)</li>
    <li><I>Debugger</I>. Fixed problem with memory refresh in dbgeng/dbgmodel targets. (GP-1852, Issue #4059)</li>
    <li><I>Debugger</I>. Fixed a DomainObject deadlock. (GP-1859)</li>
    <li><I>Debugger</I>. Fixed consistency issues when saving/loading target-launch command-line options. (GP-1866, Issue #4106)</li>
    <li><I>Debugger</I>. Fixed bug when refreshing target memory in dbgeng/dbgmodel connectors. (GP-1893, Issue #4112)</li>
    <li><I>Debugger</I>. Fixed register-update failures. (GP-1971)</li>
    <li><I>Debugger</I>. Fixed several bugs in the debug launch target monitor dialog. (GP-2102)</li>
    <li><I>Debugger</I>. Made miscellaneous fixes for errors in the JDI debugger. (GP-2253)</li>
    <li><I>Debugger</I>. Fixed a NullPointerException that occurred when closing the Debugger tool. (GP-2387)</li>
    <li><I>Debugger</I>. Fixed issue with Debugger module list when connected to GDB 10.1 on Debian Bullseye. (GP-2533, Issue #4583)</li>
    <li><I>Debugger</I>. Fixed issue in module list with gdb-11 and later. (GP-2727)</li>
    <li><I>Debugger:Breakpoints</I>. Fixed a bug that caused unexpected behavior when toggling a breakpoint while the cursor is in the <B>Bytes</B> field of the Listing. (GP-2725)</li>
    <li><I>Debugger:Breakpoints</I>. Fix address of watchpoints in GDB. (GP-2726)</li>
    <li><I>Debugger:Emulator</I>. Fixed spurious <code>Emulate read from uninitialized state</code> warnings when P-Code Stepper window is active. (GP-1650)</li>
    <li><I>Debugger:Emulator</I>. Fixed display of internal p-code labels in Pcode Stepper window. (GP-1883)</li>
    <li><I>Debugger:Emulator</I>. Fixed NullPointerException that occurred when adjusting the register-tracking setting on the Dynamic Listing window. (GP-1905)</li>
    <li><I>Debugger:Emulator</I>. Fix bug in Taint analyzer with INT_ZEXT and INT_SEXT. (GP-2489)</li>
    <li><I>Debugger:Emulator</I>. Fixed issue with emulator writing values at space's max address. (GP-2490)</li>
    <li><I>Debugger:GDB</I>. Fixed GDB connector, making it properly parse escaped strings. (GP-1953, Issue #4169)</li>
    <li><I>Debugger:GDB</I>. Fixed AddressOutOfRange issues when GDB's <code><B>info proc mappings</B></code> fails on 32-bit and smaller targets. (GP-2241, Issue #4345)</li>
    <li><I>Debugger:GDB</I>. Fixed GDB model so that patching PC updates the listing highlight. (GP-2635)</li>
    <li><I>Debugger:Mappings</I>. Fixed address/range arithmetic in Static Mapping service. (GP-2011)</li>
    <li><I>Debugger:Memory</I>. Fixed font coloring in Dynamic Memory window to indicate changes in the same manner as other Debugger windows. (GP-1890)</li>
    <li><I>Debugger:Memory</I>. Fixed auto-read-memory to work with the <B>Force Full View</B> toggle. (GP-2033)</li>
    <li><I>Debugger:Objects</I>. Fixed NullPointerException in ObjectTree. (GP-2004, Issue #4221)</li>
    <li><I>Debugger:Trace</I>. Fixed Trace API to handle NO_ADDRESS. (GP-2430)</li>
    <li><I>Decompiler</I>. Fixed stack trace sporadically encountered when clicking Decompiler brace tokens. (GP-1602)</li>
    <li><I>Decompiler</I>. Fixed issue with re-data-typing a variable via the Decompiler window in a big-endian binary. (GP-1673, Issue #2809, #3776)</li>
    <li><I>Decompiler</I>. Refactored handling of overlays in the Decompiler to address issues causing it to lose references and enumerations. (GP-1818, Issue #2680, #3900)</li>
    <li><I>Decompiler</I>. Decompiler now appends a size suffix to integer tokens when necessary. (GP-1922, Issue #3592)</li>
    <li><I>Decompiler</I>. The Decompiler now prevents over-propagation of register values that could misleadingly cause global variable assignments to be reordered. (GP-1997)</li>
    <li><I>Decompiler</I>. Fixed a bug in the Decompiler variable hashing system that caused Rename and Retype actions in the Decompiler window to fail. (GP-2006)</li>
    <li><I>Decompiler</I>. Fixed bug causing <code>Bad storage node</code> error when using the <B>Split Out As New Variable</B> action on register pairs. (GP-2027, Issue #4186)</li>
    <li><I>Decompiler</I>. Added key bindings to allow users to navigate to enclosing braces in the Decompiler.  See the Decompiler tool options for details. (GP-2090, Issue #4264)</li>
    <li><I>Decompiler</I>. Improved switch analysis, specifically for when constants are stored on the stack. (GP-2359)</li>
    <li><I>Decompiler</I>. Patched comparison error that could cause the Decompiler to crash during variable merging. (GP-2466, Issue #4450)</li>
    <li><I>Decompiler</I>. Fixed bug preventing the Decompiler from seeing certain pointer aliases on to the stack in segmented architectures. (GP-2515, Issue #4529)</li>
    <li><I>Demangler</I>. Fixed issue where changes to the Microsoft Demangler <B>Apply Function Calling Conventions</B> option were not being honored. (GP-2542, Issue #4590)</li>
    <li><I>Diff</I>. Corrected Program Diff to properly ignore ordering differences of non-primary labels at a given address. (GP-2558)</li>
    <li><I>Disassembly</I>. Fixed issue with disassembling an instruction that contains a delay slot that is at the end of an address space. (GP-1668, Issue #3840)</li>
    <li><I>Documentation</I>. Renamed ReloadSleighLangauge.java script to ReloadSleighLanguage.java. (GP-1772)</li>
    <li><I>DWARF</I>. Improved naming of DWARF anonymous structures and unions to fix .conflict-matching issues. (GP-1500)</li>
    <li><I>DWARF</I>. Fixed bad ordering of function parameters when importing DWARF info. (GP-1682, Issue #3874)</li>
    <li><I>DWARF</I>. Fixed DWARF analyzer to support Mach-O <B>.o</B> binaries. (GP-2698, Issue #4659)</li>
    <li><I>Eclipse Integration</I>. Fixed an issue in the GhidraDev Eclipse plugin that could cause old extensions to incorrectly remain on the Ghidra project classpath after performing a <B>Link Ghidra</B> operation. (GP-1733)</li>
    <li><I>FileSystems</I>. Enhanced Ghidra's zip file system to fall back to Java's built-in zip file support when 7-Zip's native libraries fail to load. (GP-1697, Issue #3904)</li>
    <li><I>FileSystems</I>. Fixed issue with 7-Zip native library extraction during initialization that caused core dumps in other Ghidra processes running on the same host. (GP-1770)</li>
    <li><I>FileSystems</I>. Fixed issue handling zip files that contain a file with a blank name. (GP-1944, Issue #4128)</li>
    <li><I>FileSystems</I>. Fixed a <code>hash has changed</code> IOException that would sometimes occur when extracting .dylib files from a dyld_shared_cache file system. (GP-1986, Issue #4208)</li>
    <li><I>FileSystems</I>. By disabling free space checking, fixed problem that occurred when trying to query the available free disk space when in a Linux/Unix chroot environment. (GP-2078, Issue #4291)</li>
    <li><I>Graphing</I>. Updated the Function Call Graph to only save graph view information when visible. (GP-2514, Issue #4564)</li>
    <li><I>Graphing</I>. Corrected potential HTML injection vulnerability for the Graph Service vertex labeling. (GP-2716)</li>
    <li><I>GUI</I>. Fixed GUI lag issues on Windows in the file chooser that occurred when resizing the dialog in a directory with a large number of files. (GP-1634)</li>
    <li><I>GUI</I>. Fixed Ghidra's file chooser to allow refreshing the root locations in <code><B>My Computer</B></code>. (GP-1635)</li>
    <li><I>GUI</I>. Fixed bug that triggered a tool <B>Save Tool - Possible Conflict</B> dialog when using multiple tools. (GP-1637)</li>
    <li><I>GUI</I>. Updated the <B>Choose Program</B> dialog to focus the filter field by default so users can start filtering when the dialog opens. (GP-1745)</li>
    <li><I>GUI</I>. Updated the field at the bottom of the tool that displays the current instruction. Now, when the cursor is on a data item, the field shows the current datatype and size instead of being blank. (GP-1803)</li>
    <li><I>GUI</I>. Fixed issue where newly opened programs didn't have their datatypes tree apply any existing filter. (GP-1897)</li>
    <li><I>GUI</I>. Added <B>Ctrl-C</B>/<B>V<B>/</B>X</B> key bindings to the Motif Look and Feel text widgets. (GP-1972)</li>
    <li><I>GUI</I>. Corrected bad action description in the Log Viewer window. (GP-1975, Issue #4198)</li>
    <li><I>GUI</I>. Fixed NullPointerException that occurred when making a selection in the Table Chooser Dialog. (GP-1982, Issue #4204)</li>
    <li><I>GUI</I>. Fixed bug in IntegerTextField when pasting text that doesn't pass internal validation. This could result in an internal corrupted state. (GP-2000)</li>
    <li><I>GUI</I>. Improved the file chooser to not hang the GUI if there are slow file system root locations (drive letters) present. (GP-2059)</li>
    <li><I>GUI</I>. Updated tree and table filters to support undo/redo via <B>Ctrl-Z</B> and <B>Ctrl-Y</B>. (GP-2186)</li>
    <li><I>GUI</I>. Fixed rare exception seen while closing the tool just after a long reference search. (GP-2265)</li>
    <li><I>GUI</I>. Fixed an issue that prevented the One Shot analyzers from being enabled when the Listing did not have focus. (GP-2318, Issue #4589)</li>
    <li><I>GUI</I>. Fixed an IndexOutOfBoundsException in the Listing when the XREF <B>Group by Function</B> option is toggled on and <B>Maximum Number of XREFs to Display</B> is set to 1. (GP-2328, Issue #4445)</li>
    <li><I>GUI</I>. Fixed a NullPointerException that occurred when using the <B>Go To</B> dialog. (GP-2388)</li>
    <li><I>GUI</I>. Corrected <B>Function Editor</B>'s <B>Custom Storage</B> editor dialog issues that prevented proper editing behavior. (GP-2483, Issue #4492)</li>
    <li><I>GUI</I>. Fixed a NullPointerException in the Patch action's auto-complete text field. (GP-2616, Issue #4604)</li>
    <li><I>Headless</I>. Fixed analyzeHeadless.bat reporting that <code>Maximum setlocal recursion level reached</code> when a large number of command line arguments were specified. (GP-1735)</li>
    <li><I>Headless</I>. Fixed wildcard <code>'*'</code> path expansion not working properly when calling headless from Linux/macOS. (GP-2209, Issue #3409, #4500)</li>
    <li><I>Help</I>. Fixed issue of help window not opening when help was missing. (GP-2409)</li>
    <li><I>Importer</I>. Fixed NullPointerException in GzfLoader encountered when importing a GZF embedded in a ZIP file. (GP-1667)</li>
    <li><I>Importer</I>. Fixed infinite loop in import dialog that occurred when verifying filename with leading tilde (~) character. (GP-1849, Issue #4034)</li>
    <li><I>Importer</I>. When importing a file, the internal program name has been changed to reflect the name of the imported file and not the user-selected file name where Ghidra stores the program in the project.  Ghidra programs have two names; the internal name and the file storage name. The file storage name must be unique within a project. The internal name can be retrieved using <code><B>program.getName()</B></code> and the storage name can be retrieved using <code><B>program.getDomainFile().getName()</B></code>. (GP-1876)</li>
    <li><I>Importer</I>. External library links produced by the NeLoader are now working correctly.  Libraries can now be discovered when loaders specify that library filename extensions are optional. (GP-2497, Issue #2063, #2233)</li>
    <li><I>Importer</I>. Case-insensitive library lookup now works for already-imported libraries. (GP-2498, Issue #906)</li>
    <li><I>Importer</I>. Libraries are now properly recursively imported. (GP-2510, Issue #110)</li>
    <li><I>Importer</I>. Fixed OMF comment record parsing. (GP-2528, Issue #3780, #4560)</li>
    <li><I>Importer:ELF</I>. Added <code><B>-applyArmElfRelocPCBias</B></code> import option for relative relocation processing to account for differences in how tool-chains factor in the bias value. (GP-2041)</li>
    <li><I>Importer:ELF</I>. Corrected processing of ELF REL type relocations for <code>R_ARM_JUMP24, R_ARM_CALL and R_ARM_PLT32</code>. (GP-2350, Issue #4455)</li>
    <li><I>Importer:ELF</I>. Fixed problem reading Elf32 binaries that were missing certain sections. (GP-2577, Issue #4605)</li>
    <li><I>Importer:ELF</I>. Corrected MIPS ELF <code>.plt.got</code> markup error which could prevent import. (GP-2592, Issue #4602)</li>
    <li><I>Importer:ELF</I>. Corrected ELF MIPS-64 bit data relocation processing issue for <code>R_MIPS_REL32</code> and <code>R_MIPS_32</code>. (GP-2678, Issue #4633)</li>
    <li><I>Importer:ELF</I>. Corrected ELF relocation table processing to handle statically linked binaries. (GP-2703)</li>
    <li><I>Importer:ELF</I>. Corrected ELF Import processing of symbol table when associated string table is missing.  Previously caused exception. (GP-2744, Issue #4680)</li>
    <li><I>Importer:ELF</I>. Added support for ELF <code>DT_GNU_XHASH</code> symbol hash table. (GP-2749, Issue #4649)</li>
    <li><I>Importer:PE</I>. Fixed several bugs in the PE menu resource parser. (GP-1806, Issue #4017, #4018, #4020, #4021)</li>
    <li><I>Importer:PE</I>. Fixed incorrect PE driver COFF symbol offsets. (GP-1933, Issue #3564, #4139, #4168)</li>
    <li><I>Importer:PE</I>. Changed PE loader to label values found in PE header as <code><B>PE Property[propertyname]</B></code> instead of just bare <code><B>propertyname</B></code> when inserting the information into the program info list. (GP-2343, Issue #4452)</li>
    <li><I>Importer:PE</I>. Fixed an issue in the PeLoader that sometimes prevented symbols imported by ordinal from getting correctly labeled with their name. (GP-2422, Issue #4474)</li>
    <li><I>Importer:PE</I>. Fixed PE Header PdbInfo structure creation to have correct PDB pathname length. (GP-2428, Issue #4501)</li>
    <li><I>Importer:PE</I>. PE DebugDirectory entries with type <code>IMAGE_DEBUG_TYPE_EX_DLLCHARACTERISTICS</code> are now supported. (GP-2453, Issue #4502)</li>
    <li><I>Importer:PE</I>. Removed setting of TMode in PELoader for ARM PE files.  Relying on the default setting of TMode from language variant selection at time of import. (GP-2525)</li>
    <li><I>Listing</I>. Fixed bug that showed incorrect references when double-clicking the <B>XREF</B> text in the Listing. (GP-1891)</li>
    <li><I>Listing</I>. Updated the <B>Go To</B> dialog to respect the tool option that restricts searches to the current program. (GP-2296)</li>
    <li><I>Multi-User</I>. Corrected ConcurrentModificationException condition on Ghidra Server when cleaning-up stale connection registrations. (GP-2441)</li>
    <li><I>PDB</I>. Fixed PDB Universal static local variable processing. (GP-1023)</li>
    <li><I>PDB</I>. Fixed calculation of number of files contributing to a module. (GP-1775)</li>
    <li><I>PDB</I>. Fixed a NullPointerException that would occur when a PDB did not have DebugInfo. (GP-1827)</li>
    <li><I>Processors</I>. Added support for ELF PowerPC <code>R_PPC_EMB_SDA21</code> relocation and implemented <code>lq</code> instruction pcode. (GP-713, Issue #890)</li>
    <li><I>Processors</I>. Corrected issue with avr32 <code>abs</code> instruction using the floating-point <code>abs</code> pcode operator. (GP-1165)</li>
    <li><I>Processors</I>. Corrected semantics for ARM <code>vcvt</code> instruction. (GP-1503, Issue #3418)</li>
    <li><I>Processors</I>. Fixed TriCore <code>jl</code> instruction semantics. (GP-1638, Issue #3552)</li>
    <li><I>Processors</I>. Corrected carry flag semantics for the M68000 <code>addx</code> instruction. (GP-1644, Issue #3818)</li>
    <li><I>Processors</I>. Reduced complexity of several PA-RISC floating-point instructions. (GP-1656)</li>
    <li><I>Processors</I>. Corrected semantics for x86 <code>FST</code> instruction. (GP-1694, Issue #3894, #3895)</li>
    <li><I>Processors</I>. Corrected missing register definition in V850 processor. (GP-1701, Issue #3865)</li>
    <li><I>Processors</I>. Corrected register operand list for ARM <code>vsub</code> instruction. (GP-1712, Issue #3943, #3944)</li>
    <li><I>Processors</I>. Added undocumented x86 <code>ffreep</code> instruction. (GP-1722, Issue #3883)</li>
    <li><I>Processors</I>. Corrected ARM Neon <code>vraddhn</code> disassembly. (GP-1736, Issue #3978)</li>
    <li><I>Processors</I>. Simplified the TriCore <code>st.t</code> instruction semantics. (GP-1746, Issue #2326)</li>
    <li><I>Processors</I>. Fixed minor issue with TriCore sleigh file missing closing <code>endif</code> statement. (GP-1762, Issue #4029)</li>
    <li><I>Processors</I>. Corrected semantics of ARM <code>bfi</code> instruction. (GP-1763, Issue #4011)</li>
    <li><I>Processors</I>. Fixed some bugs involving JVM switch instructions and JVM switch analysis. (GP-1774, Issue #3980, #3981)</li>
    <li><I>Processors</I>. Included VPFv4 instructions in the ARM language. (GP-1817, Issue #2498, #3222)</li>
    <li><I>Processors</I>. Fixed punctuation consistency issue for ARM instructions with register lists. (GP-1837)</li>
    <li><I>Processors</I>. Fixed disassembly of M68000 <code>fmod</code> caused by manual typo. (GP-1946, Issue #4131)</li>
    <li><I>Processors</I>. Implemented previously unimplemented M68000 <code>pack</code> and <code>unpk</code> instructions. (GP-2014, Issue #4223)</li>
    <li><I>Processors</I>. Fixed an issue with the RISC-V pattern constraints filename. (GP-2046, Issue #4002, #4003)</li>
    <li><I>Processors</I>. Fixed incrementing of the stack pointer in 6502 <code>PLP</code> instruction. (GP-2092, Issue #4249)</li>
    <li><I>Processors</I>. Fixed Coldfire <code>tpf</code> instruction to not consume trailing bytes, which may be valid instructions. (GP-2104)</li>
    <li><I>Processors</I>. Fixed the TI MSP430 <code>RPT</code> instruction to use correct operand types. (GP-2112)</li>
    <li><I>Processors</I>. Fixed RISCV 64-bit long datatype size and alignment. (GP-2161, Issue #2590)</li>
    <li><I>Processors</I>. Fixed register zero reads in microMIPS and MIPS16. (GP-2162)</li>
    <li><I>Processors</I>. Fixed x86 SLEIGH issues that caused disassembly errors in various instructions. (GP-2196, Issue #4344)</li>
    <li><I>Processors</I>. Corrected semantics for SuperH <code>trapa</code> instruction to properly dereference the vector address. (GP-2344, Issue #4396, #4477)</li>
    <li><I>Processors</I>. Renamed avr8 <code>W</code> register to <code>R25R24</code>. (GP-2499, Issue #4516)</li>
    <li><I>Processors</I>. Corrected issue with ARM <code>ldrht</code>, <code>ldrsbt</code>, <code>ldrsht</code>, and <code>strht</code> not disassembling. (GP-2536, Issue #4582)</li>
    <li><I>Processors</I>. Corrected port addresses in ATmega256 for <code>MAFCR0</code> and <code>MAFPA2L</code>. (GP-2538, Issue #4592)</li>
    <li><I>Processors</I>. Corrected error in 6809 extended-address bit pattern. (GP-2562, Issue #4600)</li>
    <li><I>Processors</I>. Corrected missing S bit in ARM thumb <code>BIC</code> instruction. (GP-2696)</li>
    <li><I>Processors</I>. Added missing parentheses in 6502 indirect <code>JMP</code> instruction. (GP-2701, Issue #783)</li>
    <li><I>Processors</I>. Corrected several instances of ARM instruction parse conflicts. (GP-2718)</li>
    <li><I>References</I>. References in Byte-Mapped memory blocks will now be created correctly. (GP-2420)</li>
    <li><I>Scripting</I>. Added the script <code>setReusePreviousChoices(boolean)</code> method to allow script writers to not reuse the <B>last-entered</B> values in the various <code>ask</code> dialogs. (GP-1743, Issue #3937)</li>
    <li><I>Scripting</I>. Improved script error handling during load and initialization. (GP-2618)</li>
    <li><I>Sleigh</I>. Fixed a bug causing incorrect p-code to be generated when implementing the behavior of a SLEIGH <code><B>bitrange</B></code> operator applied to a dynamic symbol. (GP-1583, Issue #3716)</li>
    <li><I>Testing</I>. Fixed issue with pcodetest generation when test directory does not exist. (GP-2091, Issue #4239)</li>
    <li><I>Version Tracking</I>. Fixed a bug in Version Tracking where calling conventions were no longer being applied when applying function signature markup from the source to the destination program. (GP-1045)</li>
</ul>
</blockquote>

<H1 align="center">Ghidra 10.1.5 Change History (July 2022)</H1>
<blockquote><p><u><B>Improvements</B></u></p>
<ul>
    <li><I>Analysis</I>. Changed disassembly of interrupt vectors with pointers to be consistent with interrupt vectors with code, specifically for ARM-cortex-embedded binary disassembly. (GP-2080, Issue #4263)</li>
    <li><I>Processors</I>. Added HC-12 processor support with a Flat 16-bit memory model by splitting HCS12X into HC-12, HCS-12, and HCS-12X processors. (GP-1716, Issue #1570, #4016)</li>
    <li><I>Processors</I>. Added ability to specify byte-mapped and overlay memory blocks from processor specification (*.pspec). (GP-2133, Issue #2703)</li>
    <li><I>Processors</I>. Added PowerPC e500 processor variant. (GP-2272)</li>
    <li><I>Processors</I>. Added support for AARCH64 ilp32 variant. (GP-2355)</li> 
</ul>
</blockquote>
<blockquote><p><u><B>Bugs</B></u></p>
<ul>
    <li><I>Analysis</I>. Fixed function purge setting for x86 16-bit functions using <code>RETF</code> to return. (GP-2103, Issue #4293)</li>
    <li><I>Analysis</I>. Protected use of tmodeReg value in ArmAggressiveInstructionFinderAnalyzer when processor does not have a TMode register. (GP-2122)</li>
    <li><I>Analysis</I>. Fixed constant reference analysis bug introduced from refactoring that would not use the <B>Speculative reference min</B> analyzer setting. (GP-2365, Issue #4257)</li>
    <li><I>CParser</I>. Added support for the C11 <code><B>_Noreturn</B></code> keyword. (GP-2275, Issue #4273)</li>
    <li><I>Debugger:Trace</I>. Fixed event type numbering issue in Traces, which was causing enormous resource waste. (GP-2153)</li>
    <li><I>Decompiler</I>. Fixed bug that could cause the Decompiler to mislabel a switch case as <code><B>default</B></code>. (GP-2082, Issue #4268)</li>
    <li><I>Decompiler</I>. Fixed exception in Decompiler when making a selection on a wrapped line. (GP-2097, Issue #4309)</li>
    <li><I>Decompiler</I>. Fixed a memory error in the decompiler associated with data-types defined as a typedef of a structure. (GP-2178, Issue #4328)</li>
    <li><I>Decompiler</I>. The Decompiler now further simplifies expressions involving return values, parameters, or other variables that are explicitly marked as boolean. (GP-2212, Issue #4338)</li>
    <li><I>Decompiler</I>. Fixed a bug that could cause the Decompiler to crash in the hash method used to map Equate information and other dynamic annotations onto variables. (GP-2288, Issue #4410)</li>
    <li><I>GUI</I>. Fixed GTree rendering bug exhibited on some Linux platforms. (GP-2047, Issue #4260)</li>
    <li><I>GUI</I>. Fixed incorrect error message when pasting bytes. (GP-2164)</li>
    <li><I>GUI</I>. Fixed exception in table column filters. (GP-2317)</li>
    <li><I>Importer:ELF</I>. Corrected ELF import issue which could fail to create an uninitialized block for a <code>SHT_NOBITS</code> section with invalid file offsets. (GP-2098, Issue #4095)</li>
    <li><I>Importer:ELF</I>. Corrected ELF issues related to treatment of absolute symbols (<code>SHN_ABS</code>). (GP-2330)</li>
    <li><I>Importer:PE</I>. Fixed an issue with PE symbol table offset validation that prevented some binaries from being recognized as PE files. (GP-2322)</li>
    <li><I>Multi-User:Merge</I>. Corrected long-standing regression bug affecting datatype merge, which was introduced in Ghidra 9.2.  This severe error could surface during a datatype conflict merge with a shared project and could prevent a check-in to a Ghidra Server repository. (GP-2066)</li>
    <li><I>Processors</I>. Refactored AVR8 to handle 24-bit memory and to correctly index the code address space as a byte or word. (GP-2213, Issue #4333)</li>
    <li><I>Processors</I>. ELF PLT import processing changed to avoid static disassembly for ARM/MIPS due to possibility of alternative instruction set.  Now relies on disassembly during analysis for such cases. (GP-2256)</li>
    <li><I>Scripting</I>. Creating a new script via the Script Manager now properly handles the situation where the <B>$HOME/ghidra_scripts</B> directory does not exist. (GP-2282)</li>
    <li><I>Sleigh</I>. Fixed a Sleigh Parser threading issue that could cause incorrect p-code generation for languages that use delay slots. (GP-2235, Issue #4332)</li>
</ul>
</blockquote>

<H1 align="center">Ghidra 10.1.4 Change History (May 2022)</H1>
<blockquote><p><u><B>Improvements</B></u></p>
<ul>
    <li><I>Debugger:Listing</I>. Refresh button in Debugger's Dynamic Listing and Memory Bytes views now operates without a selection and is more thorough with respect to cache invalidation. (GP-1930)</li>
</ul>
</blockquote>
<blockquote><p><u><B>Bugs</B></u></p>
<ul>
    <li><I>Analysis</I>. Fixed an exception that occurred when loading programs created in previous versions where the analysis option's type had changed (String to Long). (GP-1738)</li>
    <li><I>Analysis</I>. Constant reference propagation now uses pcode injection for segment and all userops.  This affects 16-bit code and the HCS12 processor. (GP-1987, Issue #4252)</li>
    <li><I>C Parsing</I>. Added C-Parser support for <code>static_assert<code> and </code>_Static_assert</code> keywords. (GP-1958, Issue #4038)</li>
    <li><I>C Parsing</I>. Corrected C-Parser to parse <code><B>sizeof</B></code> structure members, both <code>sizeof(ptr->member)</code> and <code>sizeof(struct.member)</code>. (GP-1964, Issue #4173)</li>
    <li><I>Decompiler</I>. Fixed bug causing the Decompiler to not label pointer references to the first parameter on the stack. (GP-2018)</li>
    <li><I>GUI</I>. Fixed bug that caused some edited functions to appear twice in the Functions window. (GP-2025)</li>
    <li><I>GUI</I>. Fixed potentially slow computer name lookup in the Error Dialog. (GP-2034)</li>
    <li><I>Importer:COFF</I>. Fixed importing of non-Microsoft COFF files when any section crosses address 0x80. COFF sections marked as data that won't fit into the default data address space will be loaded in the code address space. (GP-2045)</li>
</ul>
</blockquote>

<H1 align="center">Ghidra 10.1.3 Change History (April 2022)</H1>
<blockquote><p><u><B>Improvements</B></u></p>
<ul>
    <li><I>API</I>. Added the <code>getActiveGraphDisplay()</code> API method to GraphDisplayProvider to get the active graph. (GP-1804, Issue #4060)</li>
    <li><I>Debugger</I>. Created better comment in Dynamic Listing <B>Go To</B> dialog so users don't default to <code><B>*:4 EAX</B></code> syntax. (GP-1820)</li>
    <li><I>Debugger</I>. Created new navigation methods for Objects representing addresses. (GP-1822)</li>
    <li><I>Debugger</I>. Switched to DomainFile name in Debugger dialogs to avoid confusion. (GP-1872)</li>
    <li><I>Debugger:Trace</I>. Improved performance of trace database. (GP-1727)</li>
    <li><I>FID</I>. Updated stale signatures in the FID database files. (GP-1853, Issue #2877)</li>
    <li><I>Importer:ELF</I>. Added support for additional ELF ARM-32 relocations not previously handled (<code>R_ARM_THM_JUMP8</code>, <code>R_ARM_THM_JUMP11</code>, <code>R_ARM_THM_MOVW_ABS_NC</code>, <code>R_ARM_THM_MOVT_ABS</code>, <code>R_ARM_THM_MOVW_PREL_NC</code>, <code>R_ARM_THM_MOVT_PREL</code>, <code>R_ARM_THM_MOVW_BREL_NC</code>, <code>R_ARM_THM_MOVW_BREL</code>, <code>R_ARM_THM_MOVT_BREL</code>). (GP-1742, Issue #2794)</li>
    <li><I>Processors</I>. Refactored the 6805/6809 processor to better allow variants of MC6800 processor line. (GP-1695, Issue #3673)</li>
    <li><I>Processors</I>. Added 16-byte return values for AARCH64 in <code>X0</code>, <code>X1</code>. (GP-1739)</li>
    <li><I>Scripting</I>. Improved RecoverClassesFromRTTIScript's method to validate GCC programs. (GP-1832)</li>
</ul>
</blockquote>
<blockquote><p><u><B>Bugs</B></u></p>
<ul>
    <li><I>Analysis</I>. Fixed FID Analyzer to run only once on programs with call-fixups or identified non-returning flow. (GP-1502)</li>
    <li><I>Analysis</I>. Corrected the creation of Objective-C structures when structures collided with existing generic pointers laid down by chained-pointer processing during import. (GP-1841)</li>
    <li><I>Analysis</I>. Corrected stack reference creation and the display of current instruction stack depth in the stack-depth browser field for MIPS 64-bit language processor with 32-bit addressing. (GP-1862)</li>
    <li><I>Analysis</I>. Fixed placement of constant references when a parent register's value is built up using the smaller sub-registers (hi/low).  This is common on MIPS and other 8-bit processors such as AVR8.  This would occasionally cause a reference to be placed incorrectly on a previous function call. (GP-1942)</li>
    <li><I>Basic Infrastructure</I>. Fixed a NoClassDefFoundError that occurred when launching Ghidra in single-jar mode. (GP-1741, Issue #3961)</li>
    <li><I>C Parsing</I>. CParser fixes for <code>pragma(push)</code>, re-included header files, <code>#if/defined()</code> tests on define values, unicode BOM files, and full evaluation of macro expansion. Added more information to the CParserPlugin.out file prefixed with <code><B>///</B></code> comments which should enable easier diagnosis of parsing issues. Reparsed current standard data archives with correct 64/32 data organizations. Fixed issue where many data types had incorrect <code>pack()</code> values in Windows archives, such as <code>WNDCLASSEXW</code>. To make use of the corrected data types, programs data types will need to be re-synchronized if they depend on the included Windows or clib data type archives. Windows VS2022 and Windows 11 SDK header files can now parse and will be included in the next feature release. (GP-1744, Issue #3756)</li>
    <li><I>Data Types</I>. Corrected UnsupportedOperationException error which could occur when dragging a datatype from one archive to another. (GP-1758)</li>
    <li><I>Data Types</I>. Fixed Data Types filter not being applied when using the various <B>Find</B> actions. (GP-1799)</li>
    <li><I>Debugger</I>. Fixed the defaults for log4j file locations; template patterns for empty values were crashing the process on Windows. (GP-1731, Issue #3965)</li>
    <li><I>Debugger</I>. Fixed NullPointerException caused by Debugger Console's preferred height. (GP-1766)</li>
    <li><I>Debugger</I>. Fixed race condition on right-click of non-selected tree node. (GP-1845, Issue #4093)</li>
    <li><I>Debugger</I>. Fixed missing eflags in Register View for dbgeng. (GP-1873)</li>
    <li><I>Debugger</I>. Fixed IllegalArgumentException in TraceObjectManager. (GP-1874)</li>
    <li><I>Debugger:Breakpoints</I>. Fixed issue with toggling breakpoints from within the Dynamic Listing. (GP-1706)</li>
    <li><I>Debugger:Memory</I>. Fixed timing issue where Debugger Memory view may have incorrect location label. (GP-1882)</li>
    <li><I>Debugger:Trace</I>. Fixed issue with StringDataType null terminators in stale trace ranges. (GP-1737)</li>
    <li><I>Decompiler</I>. Updated the Decompiler <B>Find</B> dialog's default text when showing the dialog with <B>comment</B> text selected. (GP-1721, Issue #3946)</li>
    <li><I>Decompiler</I>. Fixed the Decompiler <B>Find</B> dialog's sometimes incorrect result highlighting. (GP-1765, Issue #3928)</li>
    <li><I>Decompiler</I>. Fixed a bug in the Decompiler preventing prototype overrides from being applied to calls produced by Call-Fixup injection. (GP-1792, Issue #3319)</li>
    <li><I>Decompiler</I>. Updated the Decompiler hover for structure fields to show the parent name and the offset in the parent. (GP-1793, Issue #3920)</li>
    <li><I>Decompiler</I>. Eliminated infinite loop in the Decompiler encountered when applying convert/equate. (GP-1924, Issue #4121)</li>
    <li><I>FID</I>. Fixed bug causing <code>Program ... has different compiler spec...</code> exception when populating FID signatures. (GP-1839, Issue #4042)</li>
    <li><I>FileSystems</I>. Fixed problem opening files in paths that start with a UNC location (<code>\\location\path</code>). (GP-1696, Issue #3912)</li>
    <li><I>Framework</I>. Fixed bug that could cause a NullPointerException when removing custom Compiler Specification extensions from a Program. (GP-1715, Issue #3906)</li>
    <li><I>GUI</I>. Fixed default function Plate Comment formatting. (GP-1717)</li>
    <li><I>GUI</I>. Fixed the Search Memory Dialog buttons to re-enable after closing a long-running search results table. (GP-1753, Issue #4014)</li>
    <li><I>GUI</I>. Updated Symbol <B>Edit</B> dialog to not allow namespaces editing with a blank name. (GP-1754, Issue #4015)</li>
    <li><I>GUI</I>. Fixed table CSV export of boolean values. (GP-1764, Issue #3947, #4026)</li>
    <li><I>Headless</I>. Corrected potential NullPointerException for Headless Analyzer when a specified filename to process does not exist in a searched project folder. (GP-1916)</li>
    <li><I>Help</I>. Fixed Help Viewer <B>Find</B> feature, clearing search result highlights when the search dialog is closed. (GP-1718)</li>
    <li><I>Importer:ELF</I>. Corrected MIPS type 5/6 relocation calculation.  Previously, the <code>LO16</code> value, extracted as an addend from the instruction, was not sign-extended. (GP-1834)</li>
    <li><I>Importer:PE</I>. Fixed a bug that prevented certain types of PE files from being recognized by the PeLoader. (GP-1713, Issue #3830, #3902)</li>
    <li><I>Importer:PE</I>. Detect .NET managed code in mixed Native/MangedCode binaries and only disassemble the correct x86 or CLR routines based on the current processor. (GP-1938, Issue #4159)</li>
    <li><I>Processors</I>. ARM <code>BL</code> conditional call instruction, which calls to the next instruction, has been changed to a branch instead of a call.  Calling the next instruction on ARM is generally only to get the <code>LR</code> register loaded for PIC code. (GP-1752)</li>
    <li><I>Processors</I>. Fix bug in MIPS <code>rdhwr</code> instruction to use correct hardware registers. (GP-1879)</li>
    <li><I>Scripting</I>. Fixed the <B>Bytes</B> table column rendering in the scripting TableChooserDialog. (GP-1714)</li>
    <li><I>Scripting</I>. Fixed two bugs in RecoverClassesFromRTTIScript.java encountered when creating class structures. (GP-1781)</li>
    <li><I>Scripting</I>. OSGI jar bundles now correctly load on Windows. (GP-1846, Issue #3995)</li>
    <li><I>Sleigh</I>. Fixed bug preventing prototype model extensions with p-code from being imported. (GP-1915)</li>
</ul>
</blockquote>

<H1 align="center">Ghidra 10.1.2 Change History (January 2022)</H1>
<blockquote><p><u><B>Improvements</B></u></p>
<ul>
    <li><I>Basic Infrastructure</I>. Upgraded Gson to 2.8.9. (GP-1632, Issue #3802)</li>
    <li><I>Basic Infrastructure</I>. Upgraded log4j to 2.17.1. (GP-1641)</li>
    <li><I>Build</I>. Increased minimum supported Gradle version from 6.4 to 6.8. (GP-1680)</li>
    <li><I>Debugger:Emulator</I>. Emulator's PcodeStepper now displays the decoded instruction. (GP-1474)</li>
    <li><I>Debugger:Watches</I>. Double-clicking a <B>pointer</B> value in the Watches window navigates to the pointer rather than its address. (GP-1469)</li>
    <li><I>Listing</I>. Updated the Listing <B>Operands</B> field to support word-wrapping for enum data types. (GP-1665, Issue #3812)</li>
    <li><I>Scripting</I>. Improved the RecoverClassesFromRTTIScript to create function definitions for multi-inheritance and single virtual inheritance classes in the correct ancestor class data type folders. (GP-1663)</li>
    <li><I>Scripting</I>. Updated RecoverClassesFromRTTI script for GCC programs to only create <code>typeinfo</code> structures in non-executable memory. (GP-1686)</li>
</ul>
</blockquote>
<blockquote><p><u><B>Bugs</B></u></p>
<ul>
    <li><I>Analysis</I>. Fixed another bug with recovering Objective-C method names. (GP-1642, Issue #3817)</li>
    <li><I>Analysis</I>. Certain switch cases using the AARCH64 CSEL instruction will now recover correctly.  Previously internal CBRANCH instructions could cause switch flow recovery failure in the decompiler switch analyzer. (GP-1687)</li>
    <li><I>Analysis</I>. Fixed unused Microsoft Demangler options. (GP-1688, Issue #3892)</li>
    <li><I>Analysis</I>. Reverted change (GP-1575) introduced with Ghidra 10.1 which improperly factored image-base into analysis of ELF LSDA GCC exception records. (GP-1702)</li>
    <li><I>Build</I>. Fixed <code>gradle buildGhidra</code> issue where a second build doesn't include all the files. This issue appears to be a bug introduced in Gradle 7. (GP-1648, Issue #3827)</li>
    <li><I>Data Types</I>. Fixed display of multiple Enum values. (GP-1657, Issue #3810)</li>
    <li><I>Debugger</I>. Now invalidating caches for dbgeng/dbgmodel in the GADP variants so the memory is not left stale. (GP-846)</li>
    <li><I>Debugger</I>. Fixed exception when cancelling password entry for GDBOverSSH. (GP-1655, Issue #3578)</li>
    <li><I>Debugger:Memory</I>. Fixed Debugger Memory background colors during emulation. (GP-1590)</li>
    <li><I>Debugger:Trace</I>. Fixed issue where emulated state leaked into recorded state. (GP-1620)</li>
    <li><I>Debugger:Trace</I>. Fixed NullPointerException when disassembling stale memory. (GP-1646)</li>
    <li><I>Decompiler</I>. Fixed the Decompiler <B>Retype Field</B> action to not rename the field. (GP-1654, Issue #3783)</li>
    <li><I>Decompiler</I>. Decompiler now recovers jump tables that use PIC mechanisms or other forms relying on injected p-code. (GP-1659)</li>
    <li><I>Demangler</I>. Fixed demangling bug that produced incorrect types such as <code><B>unsigned_short</B></code>. (GP-1662)</li>
    <li><I>GUI</I>. Fixed incorrect tool option reference in the <B>Create Table From Selection</B> action. (GP-1676, Issue #3858)</li>
    <li><I>GUI</I>. Fixed the <B>Decompiler Find Text</B> dialog's auto-complete feature to not change the default text entry added to the dialog. (GP-1685, Issue #3890)</li>
    <li><I>Importer:Mach-O</I>. Fixed an IllegalArgumentException that occurred when loading some kernelcache images. (GP-1675, Issue #2487)</li>
    <li><I>Importer:PE</I>. Fixed an exception that occurred when re-parsing PE programs with a <code><B>.pdata</B></code> section from memory. (GP-1636, Issue #3347, #3800, #3805)</li>
    <li><I>PDB</I>. Fixed incorrect bounds on item type iteration; one effect of the fix is that the user might notice more <code>unsupported PDB data type</code> messages in the log. (GP-1677)</li>
    <li><I>Processors</I>. Fixed issue with Motorola 6809 immediate operands being set to zero. (GP-1611, Issue #2116, #3755)</li>
    <li><I>Processors</I>. Corrected PowerPC <code>efscmp*</code> and <code>efstst*</code> instructions condition register usage. (GP-1639, Issue #2528)</li>
    <li><I>Processors</I>. Fixed the target of <code>JUMP</code> and <code>JSR</code> for the 6809 to use [target] instead of jumping directly to target which incorrectly jumped to the address of the unique variable.  Also fixed a compile issue in the half-finished 6309 <code>EXG</code> and <code>TFR</code> instructions. (GP-1690, Issue #3825)</li>
    <li><I>Scripting</I>. Fixed the ApplyClassFunctionDefinitionUpdatesScript and the ApplyClassFunctionSignatureUpdatesScript to work correctly with the recent RecoverClassesForRTTI changes to function definitions. (GP-1601)</li>
    <li><I>Scripting</I>. Fixed bug in a class recovery helper class that was causing an exception in some cases when trying to replace a component in a structure. (GP-1670)</li>
    <li><I>Scripting</I>. Removed a misplaced space character in the name passed to setLabel in RecoverClassesForRTTIScript. (GP-1671)</li>
    <li><I>Sleigh</I>. Fixed bug that could cause erroneous decompilation of functions in overlays. (GP-1661, Issue #3828)</li>
</ul>
</blockquote>

<H1 align="center">Ghidra 10.1.1 Change History (December 2021)</H1>
<blockquote><p><u><B>Improvements</B></u></p>
<ul>
    <li><I>Analysis</I>. Fixed headless analysis exception related to running UI code from the GNU Demangler analyzer. (GP-1613, Issue #3765)</li>
    <li><I>Basic Infrastructure</I>. Upgrade logging dependency to use <i>log4j</i> 2.17.0 (GP-1621)</li>
    <li><I>Debugger:Memory</I>. Added <B>New Memory Bytes View</B> to Window->Debugger menu. (GP-1465)</li>
    <li><I>Debugger:Memory</I>. Fixed issue with Debugger Memory view scrolling. (GP-1591)</li>
    <li><I>GUI</I>. Removed restriction that prevented renaming tree nodes while the tree is filtered. (GP-1507)</li>
    <li><I>GUI</I>. Fixed issue where renaming a symbol in the symbol tree could result in the symbol appearing more than once (under different organizational nodes) (GP-1587)</li>
    <li><I>Help</I>. Fixed NullPointerException when using the help system with animation disasbled. (GP-1612, Issue #3767)</li>
</ul>
</blockquote>
<blockquote><p><u><B>Bugs</B></u></p>
<ul>
    <li><I>Basic Infrastructure</I>. Fixed the <I>"ERROR StatusLogger Reconfiguration failed"</I> message that appeared in the log when Ghidra was launched with <I>support/ghidraDebug</I> script. (GP-1607)</li>
    <li><I>Debugger</I>. Fixed null pointer exception in Debugger when opening a program from a shared project. (GP-1490)</li>
    <li><I>Debugger</I>. Fixed issue with context menus on the trace selector tabs in Debugger Threads window. (GP-1494)</li>
    <li><I>Debugger</I>. Fix for font resizing (GP-1597, Issue #3752)</li>
    <li><I>Debugger</I>. Fixes null-pointer exceptions in lldb (GP-1600, Issue #3645)</li>
    <li><I>Debugger:Listing</I>. Fixed default configuration problem when cloning the Debugger Listing window. (GP-1479)</li>
    <li><I>Importer</I>. Fix issue importing NE binaries that have a segment number greater than 127. (GP-1576, Issue #3715)</li>
</ul>
</blockquote>

<H1 align="center">Ghidra 10.1 Change History (December 2021)</H1>
<blockquote><p><u><B>New Features</B></u></p>
<ul>
    <li><I>Build</I>. Ghidra now builds on 64-bit Linux ARM and macOS M1 platforms. (GP-1106, Issue #3197)</li>
    <li><I>Build</I>. Native binaries for the current platform can now be built/rebuilt from within a release using the <B>support/buildNatives(.bat)</B> script.  Please see the "Building Ghidra Native Components" section of the Installation Guide for additional information. (GP-1209, Issue #3387)</li>
    <li><I>Data Types</I>. DataType API: Added <code>encodeValue</code> and <code>encodeRepresentation</code> methods which facilitate patching. (GP-1265)</li>
    <li><I>Debugger</I>. Added Memory view (raw bytes) to the Debugger. (GP-80)</li>
    <li><I>Debugger</I>. Added new agent for LLDB on macOS and Linux. (GP-1005, Issue #2591, #2967)</li>
    <li><I>Debugger</I>. Added <B>Copy Into Current Program</B> and <B>Copy Into New Program</B> actions to Debugger. (GP-1214)</li>
    <li><I>Debugger</I>. Added <B>Compare</B> action to Dynamic Listing to compare points in time. (GP-1222)</li>
    <li><I>Debugger</I>. Added Events/Exceptions to Objects View. (GP-1288, Issue #3049)</li>
    <li><I>Debugger:Emulator</I>. Added <B>Emulate Program</B> and <B>Add Emulated Thread</B> actions for loading a program into a purely emulated trace. (GP-660)</li>
    <li><I>Decompiler</I>. Added support for <code><B>else if</B></code> syntax in Decompiler output. (GP-1172, Issue #1609)</li>
    <li><I>Importer</I>. Added support for Android formats (ART, OAT, ODEX, DEX, CDEX, VDEX) and Dalvik VM Sleigh modules for each major Android release up to version 12.x (S). (GP-1247)</li>
    <li><I>Scripting</I>. Created RunYARAFromGhidra.py to map YARA rules to Ghidra comments. (GP-1199)</li>
</ul>
</blockquote>
<blockquote><p><u><B>Improvements</B></u></p>
<ul>
    <li><I>Analysis</I>. The called <code>___chkstk_ms()</code> function is now properly recognized and handled with a call fixup for windows x86-64. (GP-1347, Issue #1888, #1889)</li>
    <li><I>Analysis</I>. Added support for Objective-C small methods. (GP-1397, Issue #2719, #2732)</li>
    <li><I>Analysis</I>. Fixed several memory usage issues with constant propagation for very large functions, resulting in an average 10-20 percent time savings for constant propagation and stack analysis. (GP-1418, Issue #3508)</li>
    <li><I>API</I>. Updated API methods of the DataTypeChooserDialog. (GP-1349, Issue #3140)</li>
    <li><I>Basic Infrastructure</I>. Symbol performance in Ghidra was significantly improved. Specifically, new database indexes were created to improve finding primary symbols as well as improving lookups by combinations of name, namespace, and address. (GP-1082)</li>
    <li><I>Basic Infrastructure</I>. Added optional columns in the Functions table for several boolean-valued function attributes. (GP-1393)</li>
    <li><I>Basic Infrastructure</I>. Upgraded log4j dependency from 2.12.1 to 2.15.0 to resolve a security vulnerability. (GP-1588)</li>
    <li><I>Build</I>. Extension builds can now declare jar dependencies from standard Gradle repositories such as Maven Central. (GP-1144, Issue #2219, #2226)</li>
    <li><I>Build</I>. Increased minimum supported Gradle version from 6.0 to 6.4. (GP-1521, Issue #3650)</li>
    <li><I>Data Types</I>. Added support for zero-element arrays and zero-length components within structures and unions.  Eliminated flex-array API methods and added/improved other Structure methods to handle multiple components which share the same offset. (GP-943)</li>
    <li><I>Data Types</I>. Added the ability to set comments on enum values. (GP-1316, Issue #1680, #2421)</li>
    <li><I>Data Types</I>. Updated Windows and generic clib data type archives to take advantage of improved CParser including changes to handle sizeof() correctly. (GP-1551, Issue #615)</li>
    <li><I>Debugger</I>. Respond to CLI-driven memory changes in dbgeng. (GP-853)</li>
    <li><I>Debugger</I>. User can now override the Debugger's processor selection when manually activating the <B>Record</B> (<B>R</B>) action. (GP-1233)</li>
    <li><I>Debugger</I>. User can now double-click in Listing margin to toggle breakpoints. (GP-1395)</li>
    <li><I>Debugger</I>. Adjusted alignment of <B>Description</B> tag in Debugger's <B>Connect</B> dialog. (GP-1416)</li>
    <li><I>Debugger:Emulator</I>. Added more accessor methods to PcodeThread, Machine, Executor, and similar classes. (GP-1223)</li>
    <li><I>Debugger:Emulator</I>. Added more accessor methods to PairedCodeArithmetic, ExecutorState, ExecutorStatePiece, and similar classes. (GP-1224)</li>
    <li><I>Debugger:Emulator</I>. Emulator now responds better to memory and register edits. (GP-1486)</li>
    <li><I>Debugger:Emulator</I>. Registers window can now modify emulated register values. (GP-1530)</li>
    <li><I>Debugger:GDB</I>. GDB manager handles <code>=cmd-param-changed</code> events. (GP-1330)</li>
    <li><I>Debugger:GDB</I>. Ported GDB's SSH connector to JSch. (GP-1387)</li>
    <li><I>Debugger:LLDB</I>. Improved build scripts for LLDB Java language bindings. (GP-1477)</li>
    <li><I>Debugger:Memory</I>. Added <B>Force Full View</B> override toggle to Debugger's <B>Regions</B> window. (GP-1447)</li>
    <li><I>Debugger:Stack</I>. Fixed various <code>NullPointerExceptions</code> among the Debugger Stack and Threads windows. (GP-1475)</li>
    <li><I>Debugger:Trace</I>. Trace API now supports <B>Overlay</B> spaces. (GP-484)</li>
    <li><I>Decompiler</I>. Added the <B>Rename Label</B> Decompiler action to allow label name editing. (GP-1195, Issue #1751)</li>
    <li><I>Decompiler</I>. The Decompiler now recognizes typedef relationships between data-types when determining if casts are necessary. (GP-1297, Issue #2393, #3249)</li>
    <li><I>Decompiler</I>. Improved the Decompiler's analysis of pointer calculations affected by common subexpression elimination. (GP-1312)</li>
    <li><I>Decompiler</I>. Added methods to ClangTokenGroup to facilitate iteration and filtering over the Decompiler's output tokens. (GP-1317, Issue #2040)</li>
    <li><I>DWARF</I>. Relaxed DWARF symbol name mangling to allow colons and forward slashes; changed space mangling to use underscores. (GP-1122, Issue #2014, #2043)</li>
    <li><I>DWARF</I>. Improved DWARF analyzer to handle MIPSPro 64-bit file format oddity. (GP-1171, Issue #3223)</li>
    <li><I>DWARF</I>. Improved DWARF analyzer to import DWARF data from PE binaries. (GP-1192, Issue #1267)</li>
    <li><I>DWARF</I>. Add support for DWARF external debug files. (GP-1286, Issue #3513)</li>
    <li><I>DWARF</I>. Added support for DWARF <B>noreturn</B> function attribute. (GP-1390)</li>
    <li><I>Eclipse Integration</I>. Eclipse Python breakpoints now work when Eclipse installs PyDev in <B>.p2</B> bundle pool directory. (GP-1338, Issue #3453, #3454)</li>
    <li><I>Exporter</I>. Updated the DataTypeWriter to emit enum comments.  Furthermore, the enum data type has been updated to return names sorted by enum value, which is now the order in which enum values will be emitted by the DataTypeWriter. (GP-1374, Issue #1664)</li>
    <li><I>Exporter</I>. The PE Exporter no longer forces files to be saved with a <B>.exe</B> extension. (GP-1385, Issue #3391)</li>
    <li><I>Extensions</I>. Building extensions now fails gracefully if an unsupported Gradle version is used. (GP-1189, Issue #3313)</li>
    <li><I>FileSystems</I>. Temporary files created by GFilesystem implementations are now obfuscated when written to disk. (GP-253)</li>
    <li><I>FileSystems</I>. Added support for opening password-protected zip files. (GP-725, Issue #377)</li>
    <li><I>FileSystems</I>. Add support for opening HFS+ volume images.  Improved support for ISO9660 images by using 7-Zip library. (GP-807)</li>
    <li><I>Graphing</I>. Created concept of graph types that define specific vertex and edge types so that color and shape attributes can be assigned indirectly to vertices and edges.  Created tool options for setting/changing the display attributes for these types. (GP-773)</li>
    <li><I>GUI</I>. Added new layouts to the Function Graph.  Each new layout is using one of the Jungrapht layouts. (GP-926)</li>
    <li><I>GUI</I>. Added option to change the background color of the Function Call Graph. (GP-1014)</li>
    <li><I>GUI</I>. Added menu support for the following navigation keys: <B>Page Up</B>, <B>Page Down</B>, <B>Home</B>, <B>End</B>, and number keys <B>1</B>-<B>9</B>. (GP-1081, Issue #2811)</li>
    <li><I>GUI</I>. Added an option to group the XRef field in the Listing by function. (GP-1093, Issue #1305)</li>
    <li><I>GUI</I>. Symbol tree has been changed to improve its behavior in the presence of large scale changes such as analysis, loading PDB, etc. It now will auto-close the label or function category if the internal organization becomes too much out of balance. This will also improve the analysis performance when the root category nodes are closed. (GP-1198)</li>
    <li><I>GUI</I>. Improved composite interior selection of components with shared offset such as bit-fields.  Previous behavior was forcing selection of multiple components. (GP-1261)</li>
    <li><I>GUI</I>. Fixed ClassCastException due to the Patch action incorrectly being added to the Function Graph context menu. (GP-1334, Issue #3288)</li>
    <li><I>GUI</I>. Updated the Search Memory dialog to allow the user to enter a single wildcard character to search for any byte value.  Previously, two consecutive wildcard characters were required. (GP-1358, Issue #3351)</li>
    <li><I>GUI</I>. Updated auto-comments to show user-defined repeatable comments from the reference destination. (GP-1361, Issue #2475)</li>
    <li><I>GUI</I>. Changed the Context column to allow for filtering of special characters in the results table of the <B>Find Uses of</B> action. (GP-1370, Issue #3473)</li>
    <li><I>GUI</I>. Updated the CodeBlockIterator interface to extend Iterable.  This allows the iterator to be used in Java's foreach loops. (GP-1381, Issue #3478)</li>
    <li><I>GUI</I>. Added <B>Find Structures by Offset...</B> and <B>Find Structures by Size...</B> actions to the Data Type Manager window. (GP-1382, Issue #759)</li>
    <li><I>GUI</I>. Added the ability to remove a non-default symbol by setting the Edit Label dialog text to the empty string; added an action to the Decompiler to remove non-default labels. (GP-1383, Issue #3285)</li>
    <li><I>GUI</I>. Fixed the Function Editor's Storage Address Editor dialog to ensure that the Cancel button will not allow data type changes to be passed through to the primary editor. (GP-1398, Issue #3490)</li>
    <li><I>GUI</I>. Updated the Comments Dialog to allow the <B>Shift-Enter</B> keystroke to insert a newline at the cursor position. (GP-1428, Issue #3548)</li>
    <li><I>GUI</I>. Updated the Symbol Table to allow users to enter optional namespaces when editing a symbol name. (GP-1430)</li>
    <li><I>GUI</I>. Fixed issue with shared actions across windows sometimes getting the wrong (non-focused) context. This was mostly related to windows with snapshot components. (GP-1440)</li>
    <li><I>GUI</I>. Updated the Data Types context menu to include all actions when showing the menu from the keyboard via <B>Shift-F10</B>. (GP-1566, Issue #3678)</li>
    <li><I>Importer</I>. Added support for new Mach-O load commands and file types. (GP-398, Issue #2487, #3572)</li>
    <li><I>Importer</I>. Added method to Memory to find addresses where a specific byte from a loaded FileBytes object is used in memory. (GP-1166)</li>
    <li><I>Importer:Mach-O</I>. The Mach-O loader now outputs a warning when it encounters encrypted sections. (GP-1406, Issue #1935)</li>
    <li><I>Importer:Mach-O</I>. Added support for the new iOS 15 and macOS Monterey dyld_shared_cache format. (GP-1524, Issue #3345, #3666)</li>
    <li><I>Importer:PE</I>. Added support for long section names (e.g., "/1234" indicates offset into string table where actual section name is found) in PE binaries. (GP-1177, Issue #1267)</li>
    <li><I>Multi-User</I>. Upgraded YAJSW to 13.01-beta.  Ghidra Server can now run with JDK 17. (GP-1266, Issue #3406)</li>
    <li><I>PDB</I>. Improved processing time on huge PDBs, especially when many labels are seen at the same address, such as with Identical COMDAT Folding. This change also allows some additional valid labels to be applied at these addresses. (GP-1298)</li>
    <li><I>Processors</I>. Added pcodetests for ARM version 5, which does not support thumb mode. (GP-1078)</li>
    <li><I>Processors</I>. Added 65C02 opcodes to the 6502 processor. (GP-1112, Issue #1261, #3170)</li>
    <li><I>Processors</I>. Made numerous improvements to the SPARC language module. (GP-1135)</li>
    <li><I>Processors</I>. Improved and fixed several issues involving the SuperH4 language module. (GP-1212)</li>
    <li><I>Processors</I>. Updated manual index page numbers for AMD VMX instructions. (GP-1219, Issue #2923)</li>
    <li><I>Processors</I>. Updated x86 and AARCH64 processor manual index files. (GP-1234)</li>
    <li><I>Processors</I>. Added <code><B>longMode</B></code> bit to x64 language spec for mixed 32-/64-bit use cases; e.g., WoW64. (GP-1255)</li>
    <li><I>Processors</I>. Made minor improvements to the RISC-V language module. (GP-1409)</li>
    <li><I>Processors</I>. Corrected <code>swap</code> instruction semantics for PIC-24,30,33 processors. (GP-1565, Issue #3670)</li>
    <li><I>Scripting</I>. Improved RecoverClassesFromRTTIScript to better define virtual function data definitions to be more generically used by all related class structures. (GP-1311, Issue #3417)</li>
    <li><I>Scripting</I>. Added options to allow removal of replaced class structure data types when replaced with ones created by RecoverClassesFromRTTIScript. (GP-1315, Issue #3443)</li>
    <li><I>Scripting</I>. Changed class structures created by RecoverClassesfromRTTI so that the vftable pointers are separated from the class data structures inside a derived class. This allows the derived class vftables structures to be accessed correctly by the Decompiler. (GP-1408)</li>
    <li><I>Sleigh</I>. Modeled undocumented encoding of <code>REP</code> prefix for x86 instructions. (GP-1294, Issue #731)</li>
    <li><I>Version Tracking</I>. Updated Version Tracking to address multiple performance issues. (GP-1421, Issue #3221)</li>
    <li><I>Version Tracking</I>. Slightly relaxed score thresholds for the reference correlator portions of auto version tracking to enable discovery of more high scoring matches. (GP-1448)</li>
</ul>
</blockquote>
<blockquote><p><u><B>Bugs</B></u></p>
<ul>
    <li><I>Analysis</I>. Fixed a bug that would result in the <B>COFF Header Annotation</B> analyzer running on PIC binaries when it was not intended to. (GP-1366, Issue #3386)</li>
    <li><I>Analysis</I>. The Objective-C analyzer no longer crashes when encountering categories with an implementation in an external binary. (GP-1413, Issue #3510)</li>
    <li><I>Analysis</I>. Fixed a stack overflow in the <B>Objective-C 2 Class</B> analyzer. (GP-1420, Issue #2378)</li>
    <li><I>Analysis</I>. Fixed a bug with recovering Objective-C method names. (GP-1548, Issue #3611)</li>
    <li><I>Analysis</I>. Corrected a potential infinite loop in stack analysis and constant propagation due to recurring call-fixup injection to the same location. (GP-1554, Issue #3683)</li>
    <li><I>Analysis</I>. Fixed certain ELF exception records in ELF binaries marked as <code>DW_EH_PE_absptr</code> that are not relocated correctly when the binary is loaded in an alternate image base. (GP-1575)</li>
    <li><I>API</I>. Fixed issues related to moving memory blocks where the source and/or destination have pinned symbols. This could have resulted in addresses with symbols where no symbol is primary or having multiple symbols at an address that are primary. It could also have resulted in pinned symbols being moved from the destination to the source address range. (GP-1103)</li>
    <li><I>API</I>. Fixed an issue with the SymbolManager method getClassNamespaces() where it was only returning class namespaces in the global namespace. (GP-1346)</li>
    <li><I>API</I>. Critical Ghidra 10.1-BETA Issue: Corrected external function bug introduced in Ghidra 10.1-BETA which caused new functions to not be marked as primary.  This is a critical bug which could impact most programs imported with 10.1-BETA.  Such imports should be re-imported with this fix in place. (GP-1525)</li>
    <li><I>C Parsing</I>. Several issues parsing C header files have been fixed including ternary macro expression evaluation, #line preprocessor markup within functions and structures, far/near recognized as a keyword, and handling of __asm syntax. (GP-1335, Issue #1069, #1082, #2667, #464, #929)</li>
    <li><I>Debugger</I>. Fixed program actions (<B>Save</B>, <B>Close</B>, <B>Undo</B>, etc.) to work properly in the Debugger. (GP-508)</li>
    <li><I>Debugger</I>. Fixed issue getting registers on ARM targets with GDB where command exceeded 4096 characters. (GP-1356, Issue #3297, #3509)</li>
    <li><I>Debugger</I>. Fixed several issues with the GDB connector's <b>use existing session</b> option. (GP-1365)</li>
    <li><I>Debugger</I>. Fixed a NullPointerException from canceling a debug launch. (GP-1442)</li>
    <li><I>Debugger</I>. Fixed <B>Select Addresses</B> button for Debugger Modules pane. (GP-1450)</li>
    <li><I>Debugger</I>. Fixed issue with duplicate selection actions in the Debugger tool. (GP-1452)</li>
    <li><I>Debugger</I>. Fixed a bug in emulation where read/write ranges include the max address. (GP-1493)</li>
    <li><I>Debugger</I>. Fixed exception behavior for toggled Continue/Handled options. (GP-1558, Issue #3049)</li>
    <li><I>Debugger:Emulator</I>. Fixed Debugger integration and trace emulation for WoW64. (GP-1245)</li>
    <li><I>Debugger:Emulator</I>. Relaxed and corrected some logging of UNKNOWN/uninitialized values during emulation. (GP-1488)</li>
    <li><I>Debugger:Emulator</I>. Fixed several issues in Emulator with respect to Harvard architectures, memory-mapped registers, and word-addressable systems. (GP-1540)</li>
    <li><I>Debugger:GDB</I>. Fixed issue with GDB/GADP hang in development mode. (GP-1360)</li>
    <li><I>Debugger:GDB</I>. Fixed issue interrupting GDB targets launched without temporary breakpoint on main. (GP-1362)</li>
    <li><I>Debugger:GDB</I>. Fixed issues parsing and displaying various types of GDB breakpoints. (GP-1364)</li>
    <li><I>Debugger:GDB</I>. Fixed problem passing arguments to GDB in IN-VM and SSH modes. (GP-1368)</li>
    <li><I>Debugger:GDB</I>. Fixed a NullPointerException when terminating GDB. Changed PtySession API to prevent future occurrence. (GP-1399, Issue #3487)</li>
    <li><I>Debugger:Listing</I>. Fixed stack trace when switching to trace of a different processor language. (GP-1547)</li>
    <li><I>Debugger:Trace</I>. Fixed <B>'ram' not in this trace/language</B> error. (GP-1411, Issue #3509)</li>
    <li><I>Decompiler</I>. Fixed a corner case in the manipulation of integer ranges by the Decompiler. (GP-1243, Issue #3064)</li>
    <li><I>Decompiler</I>. Fixed a bug in the Decompiler's renaming algorithm that could cause memory corruption in rare cases. (GP-1380, Issue #3429)</li>
    <li><I>Demangler</I>. Fixed GNU Demangling bug encountered when Address Table types have spaces in the parent namespace name. (GP-1051)</li>
    <li><I>DWARF</I>. Fixed check for invalid function addresses. (GP-1573)</li>
    <li><I>Eclipse Integration</I>. Fixed an exception in the GhidraDev Eclipse plugin that occurred when performing a <B>Link Ghidra</B> operation on projects that use a Gradle classpath container. (GP-1149, Issue #3087, #3088)</li>
    <li><I>Exporter</I>. IDA exporter no longer fails when function stack variables have comments. (GP-1190, Issue #2350, #3309, #748)</li>
    <li><I>Exporter</I>. Fixed an issue with the ElfExporter not correctly undoing relocations when they spanned partially file-backed memory blocks. (GP-1570, Issue #3696)</li>
    <li><I>FileSystems</I>. Fixed Ext4 handling of longer symlink paths and added support for inline data. (GP-1088)</li>
    <li><I>FileSystems</I>. Fixed Ext4 file system to handle volumes with blocksize 1024 and a first data block value of 1.  Also added support for old style block maps. (GP-1094, Issue #1877)</li>
    <li><I>Framework</I>. Fixed error causing exception in the Specification Extensions panel when importing a new callotherfixup. (GP-1414, Issue #3502)</li>
    <li><I>GUI</I>. Fixed potential infinite loop in Function Graph edge painting. (GP-1019, Issue #2114)</li>
    <li><I>GUI</I>. Fixed minor memory leak encountered when using <B>Search -> For Address Tables</B>. (GP-1030, Issue #3013)</li>
    <li><I>GUI</I>. Fixed bug that prevented the Decompiler scalar hover tooltip from showing. (GP-1071, Issue #3142)</li>
    <li><I>GUI</I>. Fixed NullPointerException in File System Browser when closing the current project. (GP-1096, Issue #3179)</li>
    <li><I>GUI</I>. Fixed the script console to not lock the GUI when a large amount of text is being written. (GP-1148, Issue #3251)</li>
    <li><I>GUI</I>. Fixed long GUI hang when attempting to <B>Set External Program</B> on an import within in a large Ghidra project. (GP-1155, Issue #3245)</li>
    <li><I>GUI</I>. Fixed UI freeze when connecting to a large remote project. (GP-1200, Issue #3305)</li>
    <li><I>GUI</I>. Tweaked enablement of several search actions so that instead of being disabled when on a restricted view provider (e.g., Decompiler, FunctionGraph), they instead are enabled, but apply to the global listing provider. (GP-1259)</li>
    <li><I>GUI</I>. Fixed stack trace in the Function Call Graph when using the <B>Show Incoming Level Edges</B> action. (GP-1302, Issue #3327)</li>
    <li><I>GUI</I>. Fixed the Search Memory dialog issue that caused odd resize behavior when using the Advanced button. (GP-1333, Issue #3158)</li>
    <li><I>GUI</I>. Fixed tracking of <B>Favorite</B> data types when switching between multiple open programs. (GP-1391)</li>
    <li><I>GUI</I>. Fixed user list scrollbar in shared project dialog when there is a large number of users. (GP-1410)</li>
    <li><I>GUI</I>. Fixed bug that cause a structure field name to change when using the Retype Field action without picking a new data type. (GP-1429, Issue #3483)</li>
    <li><I>GUI</I>. Fixed issue when attempting to rename a datatype that has the same name as a category in the same parent cateogory. The rename would attempt to rename the category instead of the datatype. (GP-1445)</li>
    <li><I>Importer</I>. Fixed issue with <B>Extract and Import</B> action trying to create invalid filenames. (GP-1024, Issue #3114)</li>
    <li><I>Importer</I>. Fixed <B>Extract and Import</B> action when highlighting bytes in the debugger view. (GP-1449)</li>
    <li><I>Importer:ELF</I>. Corrected ELF importer error which could occur when processing memory section overlay blocks caused by AddressOutOfBoundsException exception. (GP-1052, Issue #3128)</li>
    <li><I>Importer:ELF</I>. Corrected various markup issues related to packed ELF Android relocations.  Added missing ELF Arm 32-bit RELR relocation support. (GP-1352, Issue #3462)</li>
    <li><I>PDB</I>. Fixed short timeout values when downloading PDB files. (GP-1105, Issue #3184)</li>
    <li><I>PDB</I>. Fixed the <B>Load PDB</B> dialog to better handle missing or incomplete metadata. (GP-1180, Issue #3289)</li>
    <li><I>PDB</I>. Fixed NullPointerException encountered for a particular array of enums scenario where the enum definition processing had not completed. (GP-1456, Issue #3484)</li>
    <li><I>Processors</I>. Corrected return type for MIPS32 <code>JIC</code> instruction. (GP-938, Issue #3022)</li>
    <li><I>Processors</I>. Corrected pcode for ARM/ARM-Thumb <code>adcs</code> and <code>sbcs</code> carry and overflow flag updates. (GP-1043)</li>
    <li><I>Processors</I>. Corrected flag handling for some 6502 instructions. (GP-1054, Issue #3096)</li>
    <li><I>Processors</I>. Fixed issues with PPC register overwrites. (GP-1075, Issue #1672)</li>
    <li><I>Processors</I>. Fixed 6502 <code>bit</code> instruction semantics. (GP-1115, Issue #2558, #3095)</li>
    <li><I>Processors</I>. Fixed MIPS 32-bit little endian floating point register ordering. (GP-1129, Issue #3212)</li>
    <li><I>Processors</I>. Corrected PowerPC ISA instruction manual index page numbers. (GP-1218, Issue #2927)</li>
    <li><I>Processors</I>. Updated Tricore manual index file to match correct page numbers. (GP-1220, Issue #2926)</li>
    <li><I>Processors</I>. Fixed bug in SuperH <code>moveml.l</code> instruction which caused a load instead of store register. (GP-1263, Issue #3379)</li>
    <li><I>Processors</I>. Corrected semantics for MIPS <code>INS</code> instruction. (GP-1290, Issue #3405)</li>
    <li><I>Processors</I>. Corrected MIPS64 <code>DINS</code> instruction semantics. (GP-1291, Issue #2232)</li>
    <li><I>Processors</I>. Corrected semantics of PA-RISC shift conditions, which was incorrectly using the register size in bytes, as opposed to bits. (GP-1292)</li>
    <li><I>Processors</I>. Corrected ARM neon <code>vmrs</code> instruction disassembly. (GP-1322, Issue #3446)</li>
    <li><I>Processors</I>. Corrected SuperH <code>bld</code> and <code>movemu</code> instruction semantics. (GP-1331, Issue #3449)</li>
    <li><I>Processors</I>. Removed deprecated ARM condition code 15. (GP-1332)</li>
    <li><I>Processors</I>. Corrected issue with x86 <code>call</code> instructions when stack pointer is used as a reference. (GP-1357, Issue #3455)</li>
    <li><I>Processors</I>. Corrected MIPS pcodeop error in <code>tlbr</code> instruction. (GP-1363, Issue #3463)</li>
    <li><I>Processors</I>. Corrected ARM Thumb conditional instruction <code>it</code> to allow the <code>al</code> (always) conditional. (GP-1402, Issue #3499)</li>
    <li><I>Processors</I>. Removed extraneous <code>sb</code> from ARM <code>ldrsb</code> instruction. (GP-1412, Issue #3522)</li>
    <li><I>Processors</I>. Implemented M68000 <code>CHK</code>, <code>CHK2</code>, and <code>CMP2</code> instructions. (GP-1478, Issue #2856, #3616)</li>
    <li><I>Processors</I>. Corrected SuperH <code>trapa</code> instruction to use a <code>call</code> p-code op instead of a <code>goto</code>. (GP-1504, Issue #3600)</li>
    <li><I>Processors</I>. Corrected x86 instruction parse and semantics for <code>RDRAND</code> and <code>RDSEED</code>. (GP-1564)</li>
    <li><I>ProgramDB</I>. Corrected language upgrade issue which could result in lost memory reference due to <code>RefType</code> change. (GP-1392)</li>
    <li><I>Scripting</I>. RecoverClassesFromRTTIScript now consistently applies its class structures in programs that have PDB information applied. Also, an option was added so users can decide whether to replace existing class data in thiscall functions regardless of whether they originated as PDB or not. (GP-1464)</li>
    <li><I>Scripting</I>. Fixed an issue where some GhidraScript print methods were not getting output to the script log file. (GP-1541, Issue #3657)</li>
    <li><I>Sleigh</I>. Corrected sleigh-language endian-mismatch error-message formatting. (GP-1132, Issue #3215)</li>
    <li><I>Sleigh</I>. Made numerous fixes to the PowerPC SLEIGH language module.  Note: minor language version upgrade. (GP-1250)</li>
    <li><I>Version Tracking</I>. Fixed UnsupportedOperationException in Version Tracking when attempting to find references to register or stack addresses. (GP-1084, Issue #1152)</li>
    <li><I>Version Tracking</I>. Fixed Version Tracking <B>Swap</B> button to not trigger the reloading of programs. (GP-1183)</li>
</ul>
</blockquote>

<H1 align="center">Ghidra 10.0.4 Change History (September 2021)</H1>
<blockquote><p><u><B>Improvements</B></u></p>
<ul>
    <li><I>Multi-User</I>. Added class serialization filter to Ghidra Server as a security measure. (GP-1314)</li>
</ul>
</blockquote>
<blockquote><p><u><B>Bugs</B></u></p>
<ul>
    <li><I>C Parsing</I>. Changes to the CParser have been made to successfully parse a greater number of header files.  The CParser will now correctly evaluate the truth of expanded macro substitutions in <code>#if</code> statements.  Operator precedence has been corrected and support for additional operators added for constant simplification that is used to specify array sizes during parse.  In addition, C17 structure initialization syntax and multiple type casts are now parsed. (GP-1295, Issue #1652, #2665, #2666, #3410)</li>
    <li><I>Debugger</I>. Changed <B>Track Program Counter</B>, etc., to re-track even when clicking them doesn't <B>change</B> the current setting. (GP-1282)</li>
    <li><I>Debugger:GDB</I>. Fixed issue with CRLF using GDB/SSH from Windows. (GP-1309, Issue #3426)</li>
    <li><I>Decompiler</I>. Fixed a NullPointerException encountered when hovering over the name of an Undefined Function in the Decompiler window. (GP-1260)</li>
    <li><I>Decompiler</I>. Fixed bug causing the <code>Missing userop attribute in segmentop tag</code> error message in the Decompiler for Z80 executables. (GP-1305, Issue #3329)</li>
    <li><I>Decompiler</I>. The Decompiler now handles small dynamically sized data types, like <code>Alignment</code>. (GP-1327, Issue #3399)</li>
    <li><I>GUI</I>. Fixed an AssertException in the Default Graph Display encountered when loading a saved graph layout. (GP-1313, Issue #3441)</li>
    <li><I>Headless</I>. Corrected NullPointerException for headless when no opinion results are found. (GP-1323)</li>
    <li><I>Importer:PE</I>. Fixed a regression with parsing COFF Aux symbols for PE/MZ loaders. (GP-1174, Issue #3442)</li>
    <li><I>Multi-User</I>. Corrected and improved specification of TLS version restrictions for client use via <code>launch.properties</code> and Ghidra Server use via <code>server.conf</code>. (GP-1287)</li>
    <li><I>Processors</I>. Corrected endianness mix-up in MIPS function start bit-patterns. (GP-1310, Issue #3421)</li>
</ul>
</blockquote>

<H1 align="center">Ghidra 10.0.3 Change History (September 2021)</H1>
<blockquote><p><u><B>New Features</B></u></p>
<ul>
    <li><I>Debugger:Watches</I>. Added ability to modify target memory and registers via the Watches window. (GP-1264, Issue #2866)</li>
</ul>
</blockquote>
<blockquote><p><u><B>Improvements</B></u></p>
<ul>
    <li><I>Analysis</I>. Improved SH4 constant reference analysis for PIC code, reference placement for jumps/calls, and non-return function analysis. General constant reference analysis has also been improved. (GP-1258)</li>
    <li><I>Basic Infrastructure</I>. Removed usage of the <code>--illegal-access=permit</code> JVM argument for improved JDK 17 runtime support.  The Ghidra Server continues to require JDK 11 to successfully run at this time. (GP-1193, Issue #3355)</li>
    <li><I>Debugger</I>. Debugger Agent windows now display log messages. (GP-507)</li>
    <li><I>Debugger</I>. Changed Debugger's <B>Launch</B> action to propose the current program as the command line. (GP-1176)</li>
    <li><I>Debugger</I>. Providing broader defaults for recording GDB-supported architectures. (GP-1237)</li>
    <li><I>Debugger:GDB</I>. GDB connector's <B>Use existing session</B> prompts with more instructions. (GP-1076)</li>
    <li><I>Debugger:GDB</I>. Added <B>use starti</B> option to GDB launcher. (GP-1158)</li>
    <li><I>Debugger:Mappings</I>. Added <B>Map Identically</B> action to Modules window. (GP-1232)</li>
    <li><I>GUI</I>. Changed analysis options to always show current program options when accessed via <B>Edit -> Options for &lt;program&gt;...</B>. Also added warning if the user makes changes to the analysis options and then changes the combo box without saving the changes first. (GP-1188)</li>
    <li><I>Importer</I>. The ContinuesInterceptor, which allows the import process to proceed past uncaught exceptions that can be encountered while parsing corrupted headers, has been disabled by default. Its usage is now deprecated and will be removed in a future Ghidra release. It can be temporarily re-enabled in <B>support/launch.properties</B>. (GP-1248)</li>
    <li><I>Importer:ELF</I>. Added support for additional ELF AARCH64 relocations such as <code>R_AARCH64_LDST64_ABS_LO12_NC</code>. (GP-1278, Issue #3352)</li>
    <li><I>Processors</I>. Corrected semantics for x86/x64 <code>FXSAVE</code> and related instructions. (GP-1228)</li>
    <li><I>Processors</I>. Added semantics for several x86/x64 vector operations. (GP-1262)</li>
</ul>
</blockquote>
<blockquote><p><u><B>Bugs</B></u></p>
<ul>
    <li><I>Byte Viewer</I>. Fixed stack overflow issue in ByteViewer. (GP-1276)</li>
    <li><I>C Parsing</I>. Eliminated static variables that caused follow-on CParser tasks to error because they started in a bad state. (GP-1251, Issue #1421, #3350)</li>
    <li><I>Debugger</I>. Fixed NullPointerException in Objects window's <B>Import</B>/<B>Export</B> actions. (GP-1047)</li>
    <li><I>Debugger</I>. Fixed NullPointerException in DBTraceStack. (GP-1059)</li>
    <li><I>Debugger</I>. Fixed a rare deadlock involving DBTrace.addListener. (GP-1154)</li>
    <li><I>Debugger</I>. <B>Track PC</B> action now scrolls to cursor even if the cursor is already at PC. (GP-1175)</li>
    <li><I>Debugger</I>. Created better mapping of GDB ARM architecture names to Ghidra languages for the Debugger. (GP-1221, Issue #3333)</li>
    <li><I>Debugger</I>. <B>Capture Memory</B> button is more aggressive in finding the correct region to capture, reducing bad region errors. (GP-1227)</li>
    <li><I>Debugger</I>. Fixed delay slot disassembly in Debugger dynamic listing. (GP-1246, Issue #3358)</li>
    <li><I>Debugger:Emulator</I>. Fixed cache-reading issue in trace emulation. (GP-1187)</li>
    <li><I>Debugger:Emulator</I>. Fixed a critical typo in PairedPcodeArithmetic. (GP-1191)</li>
    <li><I>Debugger:Trace</I>. Dynamic listing now updates immediately when changing data type settings. (GP-1215)</li>
    <li><I>Debugger:Trace</I>. Removed <code>Missing Instruction Prototype</code> exception in favor of using InvalidPrototype. (GP-1226)</li>
    <li><I>Debugger:Trace</I>. Adding context fields to Register viewer no longer throws an exception. (GP-1256)</li>
    <li><I>Decompiler</I>. Fixed a bug that could cause an infinite loop in the Decompiler when using bonded register pairs. (GP-1270, Issue #3105)</li>
    <li><I>Decompiler</I>. Fixed a bug causing <code>Exceeded maximum restarts with more pending</code> warnings in the Decompiler. (GP-1277, Issue #3104)</li>
    <li><I>Disassembly</I>. Fixed an IllegalArgumentException in the Non-Returning Functions analyzer caused by processor specifications without a defined context, such as Sparc and SH4. (GP-1216)</li>
    <li><I>DWARF</I>. Corrected potential random errors in DWARF parsing caused by modifications to a shared global static DWARF decoder. (GP-1272)</li>
    <li><I>Exporter</I>. Exporters with empty default extension names will no longer append a dot to the output filename. (GP-1201, Issue #3325)</li>
    <li><I>GUI</I>. Fixed the missing mnemonic of the Graph menu. (GP-1244, Issue #3330)</li>
    <li><I>Processors</I>. Corrected carry flag semantics for the 6502 processor's <code>SBC</code> instruction. (GP-1109, Issue #3189, #3190)</li>
</ul>
</blockquote>

<H1 align="center">Ghidra 10.0.2 Change History (August 2021)</H1>
<blockquote><p><u><B>New Features</B></u></p>
<ul>
    <li><I>Scripting</I>. Created an example script which demonstrates how to use the FileBytes class to do a binary export of the current program. (GP-1157)</li>
</ul>
</blockquote>
<blockquote><p><u><B>Improvements</B></u></p>
<ul>
    <li><I>Data Types</I>. When creating a substructure from existing components, the new structure will adopt the pack setting of the parent structure from which it was created.  Note  that a packed structure may still move based upon component alignment rules. (GP-1111, Issue #3193)</li>
    <li><I>Decompiler</I>. Added <B>E</B> key binding to the Decompiler's Equate action. (GP-1146, Issue #3195)</li>
    <li><I>GUI</I>. Added <B>Apply</B> button to analysis options dialog. Also added a last chance save/cancel dialog that is shown when a user cancels an options dialog that has unsaved changes. (GP-1169, Issue #3274)</li>
    <li><I>Scripting</I>. For stripped GCC binaries, improved prototype RecoverClassesFromRTTIScript identification of vtables and simple class data, constructors, and destructors. (GP-1055, Issue #3266)</li>
</ul>
</blockquote>
<blockquote><p><u><B>Bugs</B></u></p>
<ul>
    <li><I>Basic Infrastructure</I>. Fixed regression that prevented Ghidra from launching on Windows when its path contained spaces. (GP-1113, Issue #3201, #3205)</li>
    <li><I>Data Types</I>. Fixed IllegalArgumentException error message when adding a duplicate enumerate name for EnumDataType. (GP-1173, Issue #3246)</li>
    <li><I>Debugger</I>. Changed diagnostics to write GDB.log to user directory, not installation. Clarified an error message. (GP-1133, Issue #3218)</li>
    <li><I>Debugger</I>. Improved error reporting when failing to start a Debugger GADP agent. (GP-1136, Issue #3175)</li>
    <li><I>Debugger</I>. Added system property to toggle alternative icons/colors for breakpoints. (GP-1139, Issue #3204)</li>
    <li><I>Debugger</I>. Applying a default <B>everything</B> memory map for GDB targets if <B>info proc mappings</B> fails or produces an empty list. (GP-1142, Issue #3071, #3074, #3161, #3169)</li>
    <li><I>Debugger</I>. Fixed issue with Debugger ignoring JAVA_HOME when launching child JVM. (GP-1143, Issue #3231)</li>
    <li><I>Debugger</I>. Fixed command-reply matching issue when using GDB via SSH. (GP-1153, Issue #3238)</li>
    <li><I>Debugger:Emulator</I>. Fixed bug in Trace Emulation causing ArrayIndexOutOfBoundsExceptions. (GP-1058)</li>
    <li><I>Decompiler</I>. Fixed issue causing <code>Offset must be between...</code> AddressOutOfBoundsException, when decompiling real-mode x86 programs. (GP-1163, Issue #239, #2948)</li>
    <li><I>Decompiler</I>. The decompiler now shows results when a HighGlobal has no associated symbol reference in the program. (GP-1184)</li>
    <li><I>DWARF</I>. Changed processing to ignore incomplete DWARF parameter lists in Rust binaries. (GP-1121, Issue #3060)</li>
    <li><I>Exporter</I>. The C/C++ Exporter now emits semicolons after function prototypes when using the <B>Create Header File</B> option. (GP-1145, Issue #1644)</li>
    <li><I>Framework</I>. Corrected address comparison for 64-bit signed address spaces (e.g., stack space, constant space) which could produce non-transitive comparison results. (GP-1178, Issue #3302)</li>
    <li><I>Graphing</I>. Corrected graph magnification behavior when using a high resolution mouse wheel. (GP-1181, Issue #3281, #3284)</li>
    <li><I>GUI</I>. Fixed NullPointerException when Hovering in Decompiler over a function that is not in memory. (GP-1131)</li>
    <li><I>GUI</I>. Fixed bug in <B>Find References to</B> search results that prevented '<' characters from being rendered. (GP-1137, Issue #3217)</li>
    <li><I>GUI</I>. Fixed issue where duplicate label names could cause the symbol tree to become unstable, evidenced by broken display and scrolling actions. Also, improved grouping algorithm. (GP-1159, Issue #3263)</li>
    <li><I>GUI</I>. Fixed <B>Enter</B> key in Set Equates dialog to choose the selected table row. Updated the Function Signature Editor dialog to allow the <B>Cancel</B> key to close the dialog when the focus is in the top text editor. (GP-1162, Issue #3235)</li>
    <li><I>Headless</I>. Fixed a regression in analyzeHeadless.bat that prevented the headless analyzer from running on Windows in some cases. (GP-1156, Issue #3261)</li>
    <li><I>Importer</I>. The MzLoader now populates the relocation table when relocations are performed. (GP-1160)</li>
    <li><I>Importer:ELF</I>. Corrected dynamic GOT/PLT markup problem for images which do not contain section headers.  In cases where image does not define symbols within the PLT, analysis may be relied upon for its disassembly.  ELF Importer's goal is to migrate symbols which may be defined within the PLT to the External symbol space. (GP-1110, Issue #3198)</li>
    <li><I>Importer:Mach-O</I>. The Mach-O importer now correctly interprets indirect symbols as references to symbols within another .dylib. (GP-1120)</li>
    <li><I>Importer:PE</I>. Improved ControlFlowGuard markup and creation of functions (GP-1179, Issue #1547, #1565)</li>
    <li><I>Processors</I>. Fixed bug in SuperH4 <code>fmov.s</code> pcode. (GP-1152)</li>
    <li><I>Processors</I>. The ARM instruction semantics for the mulitple-single-element forms of the  <code>vld1</code>/<code>vst1</code> vector instructions have been corrected. (GP-1167)</li>
    <li><I>Sleigh</I>. Fixed a string formatting error in the sleigh compiler. (GP-1124, Issue #3168)</li>
</ul>
</blockquote>

<H1 align="center">Ghidra 10.0.1 Change History (July 2021)</H1>
<blockquote><p><u><B>New Features</B></u></p>
<ul>
    <li><I>Decompiler</I>. The Decompiler now supports conversion (hex, dec, bin, oct, char) and equate actions directly on constant tokens in the Decompiler window.  To the extent possible, these actions also affect matching scalar operands in the listing. (GP-1053, Issue #21)</li>
</ul>
</blockquote>
<blockquote><p><u><B>Improvements</B></u></p>
<ul>
    <li><I>Basic Infrastructure</I>. Ghidra now gracefully fails to launch when its path contains an exclamation point. (GP-1057, Issue #1817)</li>
    <li><I>FileSystems</I>. Can now handle multi-level Ext4 extent nodes when reading a file. (GP-1070)</li>
</ul>
</blockquote>
<blockquote><p><u><B>Bugs</B></u></p>
<ul>
    <li><I>Build</I>. No longer building and distributing the Debugger native test binaries. (GP-1080, Issue #3160, #3177)</li>
    <li><I>Debugger</I>. Corrected potential deadlock condition within Debugger which could occur under some circumstances during a breakpoint or while stepping. (GP-1072)</li>
    <li><I>Decompiler</I>. Fixed a bug in the Decompiler causing <code>Overriding symbol with different type size</code> exceptions. (GP-1041)</li>
    <li><I>Exporter</I>. PE and ELF exporters no longer error out when processing non-file-backed relocations. (GP-1091)</li>
    <li><I>FileSystems</I>. Corrected problem mounting Ext4 file systems when the container file is larger than the file system. (GP-1067)</li>
    <li><I>Importer:ELF</I>. Corrected ELF relocation error reporting, including error bookmarks, when relocation handler extension is missing. (GP-1097)</li>
    <li><I>Jython</I>. Added <code>__file__ attribute</code> support in Jython scripts. (GP-1099, Issue #3181)</li>
    <li><I>PDB</I>. Fixed bug that prevented constructor signatures from being created properly. (GP-1086)</li>
    <li><I>PDB</I>. Fixed bug in PDB CLI processing that could kill analysis for binaries imported with older versions of Ghidra. (GP-1104)</li>
    <li><I>Processors</I>. Added ELF Relocation handler for SuperH processors.  Only a few common relocation types have been added. (GP-1090)</li>
    <li><I>Scripting</I>. Fixed a potential NullPointerException that could occur when trying to run a script that doesn't exist. (GP-1074, Issue #2742)</li>
    <li><I>Scripting</I>. Improved graphing of class hierarchy in RecoverClassesFromRTTIScript and the GraphClassesScript to handle duplicate class names, class namespace delimiters, and to make better vertex descriptions. (GP-1095)</li>
    <li><I>Scripting</I>. Fixed a flaw in the RecoverClassesFromRTTIScript that was not using PDB information to create data member names in class data structures. (GP-1101)</li>
</ul>
</blockquote>

<H1 align="center">Ghidra 10.0 Change History (June 2021)</H1>
<blockquote><p><u><B>New Features</B></u></p>
<ul>
    <li><I>Debugger</I>. Introduced the Debugger, along with GDB and dbgeng.dll connectors for debugging user-mode applications on Linux and Windows, respectively. The UI includes threads, timeline, modules, memory, registers, watches, etc., for examining and controlling debug targets. See <B>Help -> Contents -> What's New</B> for more details. (GP-986)</li>
    <li><I>Exporter</I>. For programs imported with the PE and ELF loaders, new exporters are available that write back to the original file layout.  Any file-backed bytes that were modified by the user in the program database will be reflected in the written file (except on relocations).  Writing back a modified Memory Map is not supported. (GP-786, Issue #1501, #1505, #19)</li>
    <li><I>Graphing</I>. Added <B>Graph -> Data </B> actions to the Code Browser, allowing visualization of specified pointer relationships in a graph. (GP-194)</li>
    <li><I>Scripting</I>. Added prototype RecoverClassesFromRTTIScript and that uses RTTI information to enhance Ghidra's knowledge of class hierarchy, class member function types (constructors, destructors, deleting destructors, clones) and class member data. The script will label and put member functions into correct class namespace and apply new class structures created either using PDB information, if available, or Decompiler pcode information. (GP-339)</li>
    <li><I>Scripting</I>. Added an example script, LocateMemoryAddressForFileOffset, to demonstrate mapping of a location in the original imported file to the program memory address.  Useful for cases where the original file offset is known; for example, a YARA rule match. (GP-782)</li>
    <li><I>Scripting</I>. Created a script to allow users to search for image base offsets to the current cursor location in 32-bit and 64-bit programs. (GP-863)</li>
</ul>
</blockquote>
<blockquote><p><u><B>Improvements</B></u></p>
<ul>
    <li><I>Analysis</I>. Function signatures, including return types and argument data types, are now decoded from CLI Metadata for .NET binaries. (GP-327)</li>
    <li><I>Analysis</I>. Switched #Strings table processing from ASCII to UTF-8 for CIL binaries. (GP-330, Issue #423)</li>
    <li><I>Analysis</I>. Added Constant, Assembly, and AssemblyRef blob processing for CIL binaries. (GP-465)</li>
    <li><I>Analysis</I>. Added the Variadic Function Signature Override analyzer, which identifies functions that take a format string as a parameter and applies the correct signature override at each call site. (GP-516)</li>
    <li><I>Analysis</I>. Added ability to save and easily reuse analysis options in customer-defined configurations. (GP-544, Issue #2182, #312)</li>
    <li><I>Analysis</I>. Ghidra analysis is now aware of more PE/Windows non-returning functions. (GP-733, Issue #2111)</li>
    <li><I>Analysis</I>. <code>ResolveX86orX64LinuxSyscallsScript</code> now properly marks non-returning syscalls. (GP-868, Issue #2761)</li>
    <li><I>API</I>. Revised Structure and Union API, and associated editor, to eliminate the use of the terms Unaligned/Aligned in favor of a packing enablement designation.   Also corrected various change notification issues which may improve archive synchronization and merge behavior. (GP-862, Issue #2681)</li>
    <li><I>API</I>. Renamed <code>Datatype.isDynamicallySized()</code> to <code>DataType.hasLanguageDependantLength()</code> to avoid confusion.  This method is used internally to differentiate between fixed-length types and those whose length is determined by the compiler specification's data organization (e.g., pointers). (GP-932)</li>
    <li><I>Basic Infrastructure</I>. Improved error reporting when trying to launch Ghidra from the git repo without Eclipse having compiled it. (GP-815, Issue #2872)</li>
    <li><I>Build</I>. Command <code><B>gradle -I gradle/support/fetchDependencies.gradle init</B></code> now downloads the Function ID datasets from the ghidra-data GitHub repository so they will be automatically included in development mode and custom builds. (GP-678, Issue #1007)</li>
    <li><I>Build</I>. Performing a <code><B>gradle clean</B></code> no longer deletes downloaded dependencies.  The top-level <B>flatRepo</B> directory has been replaced with the <B>dependencies</B> directory. (GP-811, Issue #1663)</li>
    <li><I>Build</I>. Ghidra now requires Gradle 6.0 or later to build.  Gradle 7.x is now supported. (GP-849, Issue #2949)</li>
    <li><I>Build</I>. Made changes to gradle code to remove warnings. (GP-993, Issue #3039)</li>
    <li><I>Data Types</I>. Added support for hexadecimal byte offset display within composite bitfield view. (GP-910, Issue #2959)</li>
    <li><I>Decompiler</I>. Decompiler analysis now automatically identifies and displays loop variables using standard for-loop syntax.  When a loop variable is discovered, a condition, iteration, and optional initializer statement are displayed at the top of the loop. (GP-565)</li>
    <li><I>Decompiler</I>. Added the <B>Max Instructions per Function</B> Decompiler tool option, specifying the maximum number of instructions the Decompiler will decode in a single function before throwing an exception. Previously, this had been a hard-coded limit. (GP-767, Issue #2557)</li>
    <li><I>Decompiler</I>. The Decompiler now propagates datatypes across signed comparison operations, so constant integer and enum values display correctly. (GP-802, Issue #2565)</li>
    <li><I>Demangler</I>. Updated the GNU Demangler Analyzer options to provide a list of available formats from which to choose. (GP-94, Issue #2214)</li>
    <li><I>Demangler</I>. Updated the GNU Demangler's Namespace-building to improve analysis performance. (GP-706, Issue #2509)</li>
    <li><I>Demangler</I>. Improved Demangler error checking and reporting to give underlying cause of failure. (GP-850)</li>
    <li><I>Documentation</I>. Added basic instructions on how to install, build, and develop Ghidra to README.md. (GP-847)</li>
    <li><I>DWARF</I>. Improved speed and memory usage when importing large DWARF binaries. (GP-419)</li>
    <li><I>DWARF</I>. Added M68000/SVR4 DWARF register mappings. (GP-556, Issue #1610)</li>
    <li><I>DWARF</I>. Improved handling of zero-length structure components during DWARF processing. (GP-851, Issue #2191)</li>
    <li><I>Exporter</I>. Made various improvements and bug fixes and to the IDA Pro exporter. (GP-831, Issue #1897, #2788, #2882, #2891)</li>
    <li><I>FileSystems</I>. Added support for recognizing unencrypted DMG files. (GP-845)</li>
    <li><I>Framework</I>. Added support for program-specific extensions to a compiler specification.  Users can now define their own calling conventions and call-fixups to integrate into decompilation and other analysis (see help for Specification Extensions). (GP-653)</li>
    <li><I>Graphing</I>. Added capability to collapse and expand nodes in the default graph display. (GP-371)</li>
    <li><I>Graphing</I>. Upgraded jungrapht to version 1.1. (GP-377)</li>
    <li><I>Graphing</I>. Refactored graph exporters into a more extensible framework. (GP-440)</li>
    <li><I>Graphing</I>. Graph layout algorithms can now be chosen programmatically. (GP-551)</li>
    <li><I>Graphing</I>. Created additional modified versions of the MinCross layout algorithms, all named to start with Vertical Hierarchical Min-Cross, so that they accept a <B>favoredEdge</B> predicate. When an edge is favored, a pass though the graph layers attempts to align those edges vertically. (GP-625)</li>
    <li><I>Graphing</I>. Added an option to change the background color of the Function Graph window. (GP-760, Issue #1324)</li>
    <li><I>Graphing</I>. Updated Function Graph edge routing when applying the <B>Use Condensed Layout</B> option to reduce edges being clipped by vertices. (GP-768)</li>
    <li><I>Graphing</I>. Added option to disable the lightening of edges in the Function Graph. (GP-769, Issue #1106)</li>
    <li><I>Graphing</I>. Added a distinct visual edge highlight beyond just a different color for graph edge selection. (GP-793, Issue #2953)</li>
    <li><I>Graphing</I>. Added <B>Display as Graph</B> action to the Data Type Manager, allowing visualization of embedded and referenced types of the selected types. (GP-808)</li>
    <li><I>Graphing</I>. Fixed function graph bug that prevented the satellite view from showing the primary view lens.  Fixed a layout bug that allowed some vertices to get clipped when condensing the graph. (GP-940)</li>
    <li><I>Graphing</I>. Added graph API method to set descriptions (tooltips) on vertices and edges. (GP-949)</li>
    <li><I>Graphing</I>. Added Vertex and Edge attributes to GraphML export format. (GP-957, Issue #2958)</li>
    <li><I>GUI</I>. Added new <B>Copy Special</B> actions: <B>Python Byte String</B>, <B>Python List</B>, and <B>C Array</B>. (GP-210, Issue #744)</li>
    <li><I>GUI</I>. Updated the Listing to allow structure members to display Plate Comments. (GP-421, Issue #2091)</li>
    <li><I>GUI</I>. Copy/Pasting and Dragging data types now uses a progress monitor. (GP-422, Issue #2379)</li>
    <li><I>GUI</I>. Added right-click menu <B>Data -> Save Image</B> action to allow user to export embedded graphic resource images. (GP-426)</li>
    <li><I>GUI</I>. Changed Symbol Comment Annotation to use the existing symbol when available.  This allows for the direct navigation of that symbol's address instead of using the search feature of the Go To Service. (GP-675)</li>
    <li><I>GUI</I>. Added the <B>Shift-F10</B> keybinding to allow users to show the popup context menu over the currently focused item.  The  Menu Key can also be used on supporting keyboards. (GP-732, Issue #2790)</li>
    <li><I>GUI</I>. Fixed/Improved the behavior of global menu items and toolbar items with respect to which windows they appear in. These actions can now easily be configured to be either 1) only in menu bar and tool bar of the main window, 2) in the menu bar and tool bar of all windows, or 3) only in the windows that have components that generate the type of context that the action consumes.  Added methods to the ActionBuilder class to support these three options. Also, updated numerous actions to make sure they appear in the appropriate windows. (GP-759)</li>
    <li><I>GUI</I>. Improved overall UI responsiveness when performing analysis with the Symbol Table open. (GP-788)</li>
    <li><I>GUI</I>. Updated the Function Tags table column so that it may be used in most Ghidra tables. (GP-816, Issue #2873)</li>
    <li><I>GUI</I>. Updated the Defined Strings view to reload less frequently during auto-analysis. (GP-835, Issue #2889)</li>
    <li><I>GUI</I>. Updated function hovering in the Decompiler to find the correct function tooltip when multiple functions exist with the same name. (GP-959, Issue #2604)</li>
    <li><I>Importer:ELF</I>. Added markup to ELF import for <code>.note.gnu.build-id</code> and <code>.gnu_debuglink</code> sections. (GP-468)</li>
    <li><I>Importer:ELF</I>. Added ELF import support for SHN_MIPS_TEXT and SHN_MIPS_DATA symbol section index values and provided ability for other processor-specific ELF extensions to resolve ELF symbol memory addresses. (GP-664)</li>
    <li><I>Importer:ELF</I>. Changed various ELF relocations to detect and mark unsupported data relocations which refer to the EXTERNAL block.  Applied EXTERNAL data relocations, which have a non-zero offset from the external symbol, will still be incorrect but will have an error bookmark to flag the condition.  The relocation addend will not be applied in this case to avoid references to a completely irrelevant symbol in the EXTERNAL block. (GP-1029)</li>
    <li><I>Importer:Mach-O</I>. Improved support for Mach-O object files. (GP-700)</li>
    <li><I>Importer:PE</I>. CustomAttrib blobs in CLI/.NET metadata are now decoded. (GP-414)</li>
    <li><I>Importer:PE</I>. Created proper external references for PE Delay Load Imports. (GP-674, Issue #2554, #2623)</li>
    <li><I>Importer:PE</I>. PeLoader can now read and interpret the <code>.pdata</code> section of PE files that include exception handling data. (GP-729)</li>
    <li><I>Importer:PE</I>. Added <B>.exports</B> XML files for the <B>mfc71.dll</B> and <B>mfc71u.dll</B> libraries. Having them allows Ghidra to translate ordinal imports from applications compiled against MFC 7.1 (from Visual Studio .NET 2003) to class and function names with parameters. (GP-1010, Issue #3051)</li>
    <li><I>Listing</I>. Improved Listing view performance, especially noticeable on functions with excessively large stack frames. (GP-268, Issue #109, #2351)</li>
    <li><I>Listing</I>. Added a tool option to hide function auto-comments that appear, trailing a function call in the Listing. (GP-752)</li>
    <li><I>PDB</I>. Improved Ghidra's ability to find and pull PDB files from symbol servers and symbol storage locations. (GP-42)</li>
    <li><I>Processors</I>. Simplified PIC24 return instruction semantics. (GP-647)</li>
    <li><I>Processors</I>. Added support for register alias specification within processor spec (*.pspec).  Added <code>WREG</code> register aliases for PIC24 processor variants. (GP-901, Issue #2956)</li>
    <li><I>Processors</I>. Fixed issue with the <code>PPAGE</code> register not being properly restored after <code>CALL</code> instructions in the HCS12 processor. (GP-920, Issue #1099)</li>
    <li><I>Processors</I>. Fixed HCS12 <code>IDX1</code> addressing with negative immediate values. (GP-937, Issue #3008)</li>
    <li><I>Processors</I>. Fixed V850 multiply-by-immediate calculation that produced an incorrect value when the fifth bit was set. (GP-939, Issue #2970)</li>
    <li><I>References</I>. Improved performance of reference management for special cases when large a number of references from the same address exist (e.g., entry point designation). (GP-696)</li>
    <li><I>Scripting</I>. ExportImageScript now exports all images within a user-selected region to files within a user-selected folder. (GP-231)</li>
    <li><I>Scripting</I>. Improved TableChooserDialog, allowing multiple rows to be processed at once. (GP-676)</li>
    <li><I>Scripting</I>. Updated the TableChooserDialog to allow clients to set the default column sort. (GP-792)</li>
    <li><I>Scripting</I>. Added Python script comment block support. (GP-843, Issue #1484, #2846)</li>
    <li><I>Scripting</I>. Added ApplyClassFunctionSignatureUpdatesScript and ApplyClassFunctionDefinitionUpdatesScript fix-up scripts that can be applied if a user makes changes to a virtual function recovered by the RecoverClassesFromRTTIScript.  Both scripts identify differences between Function Signatures in the Listing and Function Definitions in the Data Type Manager, but the first script fixes all changes to match the signature and the second to match the definition. (GP-973, Issue #3081)</li>
    <li><I>Sleigh</I>. Debug info for Sleigh constructors now includes source file names. (GP-233)</li>
    <li><I>Sleigh</I>. The Sleigh compiler now issues a warning if it generates a temporary varnode which might be large enough to overlap another temporary varnode. (GP-520)</li>
    <li><I>Sleigh</I>. While register names should remain case-sensitive within a Sleigh spec during compilation/parse, register names must not duplicate in a case-insensitive manner since the Program API provides a case-insensitive register lookup by name. The Sleigh Compiler now enforces this. (GP-927)</li>
</ul>
</blockquote>
<blockquote><p><u><B>Bugs</B></u></p>
<ul>
    <li><I>Analysis</I>. Fixed how managed code entry points in .NET binaries with CIL entry points are detected and labeled. (GP-319)</li>
    <li><I>Analysis</I>. Can now process implementation-specific data structures for Microsoft CIL compilers. (GP-461)</li>
    <li><I>Analysis</I>. Corrected processing for pointers, function pointers, custom modifiers, ValueTypes, static methods, MethodRefs, MethodDefs, and PInvokes found in .NET mixed binaries. (GP-656)</li>
    <li><I>Analysis</I>. Improved constant analysis speed when processing large binaries with a large amount of code not in defined functions, such as exception handlers. (GP-746, Issue #2509)</li>
    <li><I>Analysis</I>. When OverlayAddressSpace was refactored and Decompiler made aware of it for Ghidra 9.2, the VarnodeContext was not aware of the overlays.  This was fixed and should eliminate the NullPointerException caused when the Symbolic Propagator calls the Varnode constructor. (GP-751, Issue #2785, #2787)</li>
    <li><I>Assembler</I>. Fixed assembler issue with delay-slotted instructions. (GP-587)</li>
    <li><I>Assembler</I>. Fixed assemble <B>Patch Instruction</B> action to work on listings other than the primary static listing. (GP-623)</li>
    <li><I>Assembler</I>. Modified assembler <B>Patch Instruction</B> action to ignore external symbols which produced bad offsets for instructions. (GP-645)</li>
    <li><I>Basic Infrastructure</I>. Fixed an issue with Ghidra and its supporting launch scripts not being able to run correctly on Windows when an ampersand was in the path.  Also fixed an issue with <B>svrAdmin.bat</B> and <B>buildGhidraJar.bat</B> not working if the Ghidra path contained a space. (GP-693, Issue #1726, #1728)</li>
    <li><I>Basic Infrastructure</I>. Corrected <I>"LaunchSupport expected 2 to 4 arguments but got 1" </I> error when starting Ghidra on Windows. (GP-1050, Issue #2176, #3122)</li>
    <li><I>Build</I>. Building of <B>pdb.exe</B> on Windows now works if the path to the Ghidra repository contains a space. (GP-916, Issue #2998)</li>
    <li><I>Build</I>. Corrected GPL DMG module build to properly utilize the jar dependencies included within the repository and distribution. (GP-934)</li>
    <li><I>Build</I>. Corrected an issue with <code><B>gradle prepDev</B></code> when the Ghidra repository is on a different drive than the user's home directory on Windows OS. (GP-970, Issue #3047, #3062)</li>
    <li><I>Build</I>. Fixed a bug that prevented Ghidra from launching in <B>Single Jar Mode</B> when its path contained a space. (GP-1039)</li>
    <li><I>C Parsing</I>. The C-Parser bitfield parsing has been relaxed to allow declared bitfield sizes to exceed the base datatype size.  The effective bitfield size may be clamped based upon the current data organization while preserving the declared size. (GP-558)</li>
    <li><I>Data Types</I>. Fixed a NullPointerException that occurred when trying to edit a function datatype in a datatype archive when there was no open program in the tool. (GP-356, Issue #2407)</li>
    <li><I>Data Types</I>. Corrected the retention of datatype archive search paths, which did not properly remember disabled paths. (GP-639)</li>
    <li><I>Data Types</I>. Fixed potential deadlock encountered when working with the DataTypes tree. (GP-774, Issue #2832)</li>
    <li><I>Decompiler</I>. Fixed endianness issue for joined, two-register returns of <code>longlong</code> values for MIPS 32-bit little endian variants. (GP-513)</li>
    <li><I>Decompiler</I>. The Decompiler no longer emits comments in the middle of conditional expressions. (GP-621, Issue #1670)</li>
    <li><I>Decompiler</I>. Fixed <code>Redefinition of structure...</code> exceptions in the Decompiler caused by a PNG Image and other opaque datatypes. (GP-820, Issue #2734)</li>
    <li><I>Decompiler</I>. Fixed infinite loop in the Decompiler when analyzing return values. (GP-821, Issue #2851)</li>
    <li><I>Decompiler</I>. Fixed bug in the Decompiler's handling of enumerated datatypes causing <code>Shared type id</code> exceptions. (GP-895, Issue #2909)</li>
    <li><I>DWARF</I>. Fixed and consolidated DEX and DWARF implementations of LEB128. (GP-444, Issue #2512)</li>
    <li><I>DWARF</I>. Fixed unnecessary ELF header parsing when DWARF analyzer checks if it needs to run.  Improved DWARF analyzer's run-once logic. (GP-695)</li>
    <li><I>DWARF</I>. Fixed issue with DWARF data type importing that could omit the definition of a structure. (GP-929)</li>
    <li><I>Eclipse Integration</I>. Fixed a GhidraDev bug that prevented Ghidra projects from recognizing extensions installed in the user's <B>~/.ghidra/.ghidra_&lt;version&gt;/Extensions</B> directory. (GP-873)</li>
    <li><I>Extensions</I>. Changed classpath configuration to not contain paths of removed extension libraries. (GP-522, Issue #2637)</li>
    <li><I>FileSystems</I>. Fixed several issues with extracting and importing DYLIB files contained within a DYLD file system. (GP-719, Issue #2934, #682)</li>
    <li><I>FileSystems</I>. Fixed SevenZipFileSystem to correctly fail when opening password-protected archives. (GP-730)</li>
    <li><I>FileSystems</I>. Fixed Ext4 file system to correctly handle sparse files. (GP-871)</li>
    <li><I>Graphing</I>. Fixed IllegalArgumentException when showing a graph popup window after the source component was hidden. (GP-756, Issue #1643)</li>
    <li><I>Graphing</I>. Fixed bug that caused all address in a function graph node to be colored when only the entry point address had a color applied. (GP-757, Issue #1080)</li>
    <li><I>Graphing</I>. Fixed bug in graph dominance algorithm that could cause the <B>Select -> Scoped Flow</B> actions to go into an infinite loop. (GP-776, Issue #2836)</li>
    <li><I>GUI</I>. Fixed UI lock-up issue related to the Function Tags table. (GP-266, Issue #2366)</li>
    <li><I>GUI</I>. Fixed missing spaces in Front End multi-line log messages. (GP-463, Issue #2534)</li>
    <li><I>GUI</I>. Fixed the following modal dialog issues: z-order changing when showing a modal dialog over a detached window; focusing the incorrect window after showing a modal dialog; script progress dialog not getting placed behind input dialog; script dialogs appearing over different windows. (GP-628, Issue #2398, #2480)</li>
    <li><I>GUI</I>. Fixed NullPointerException encountered when creating a new category in the Data Types tree while the tree is filtered. (GP-745, Issue #2799)</li>
    <li><I>GUI</I>. Fixed <B>Right Alt</B> key that did not work for Ghidra actions on some Windows systems. (GP-747, Issue #2008)</li>
    <li><I>GUI</I>. Fixed Function Graph bug that caused some vertex text to get clipped when using wide address format width. (GP-755, Issue #1008)</li>
    <li><I>GUI</I>. Fixed bug in the Listing scroll bar that caused some screen reader software to deadlock. (GP-772, Issue #2820)</li>
    <li><I>GUI</I>. Fixed bug that caused the UI to freeze when clicking in the Program Tree UI.  The bug manifested depending upon the contents of the system clipboard. (GP-775)</li>
    <li><I>GUI</I>. Updated tooltip code to limit data types name length and updated formatting to place pertinent information at the top of the tooltip. (GP-836, Issue #2029)</li>
    <li><I>GUI</I>. Fixed exception triggered when the Bookmarks table failed to remove a deleted symbol. (GP-989, Issue #3066)</li>
    <li><I>GUI</I>. Fixed exception encountered when double-clicking a structure in an archive in the <code><B>closed for edit</B></code> state. (GP-998)</li>
    <li><I>GUI</I>. Fixed Function Graph stack trace encountered when changing the graph's background color option after showing and then closing the graph. (GP-1013, Issue #3058)</li>
    <li><I>Importer:ELF</I>. Added support for additional PIC30 ELF relocations (4, 5, 6) and improved register symbol resolution and markup. (GP-710, Issue #2792)</li>
    <li><I>Importer:ELF</I>. Changed processing of ELF absolute symbols (section ID 0xfff1) to treat them as constants by defining equates instead of memory symbols. (GP-902)</li>
    <li><I>Importer:ELF</I>. Corrected EXTERNAL symbol alignment for PIC24, PIC30, PIC33 during ELF import.  The improperly aligned symbol addresses would cause incorrect external symbol references to appear on instructions (e.g., <code>RCALL</code>). (GP-906)</li>
    <li><I>Importer:PE</I>. Fixed error when importing a PE file with an uninitialized <code>.textbss</code> section. (GP-397, Issue #2496)</li>
    <li><I>Importer:PE</I>. Fixed a bug processing RUNTIME_INFO structures that caused a failure to load PE files under certain conditions when the list is empty. (GP-924, Issue #2995)</li>
    <li><I>Importer:PE</I>. Fixed an issue in the PeLoader that prevented PE files with 0 data directories from being imported. (GP-997, Issue #2858)</li>
    <li><I>Installation</I>. Renamed database <code>db.Record</code> class to <code>db.DBRecord</code> to avoid naming conflict with <code>java.lang.Record</code> class and potential import issues. (GP-193)</li>
    <li><I>Jython</I>. Fixed pasting multi-line strings into the Python interpreter panel. (GP-487, Issue #2456)</li>
    <li><I>Listing</I>. A default thunk function now reflects the <B>namespace</B> of the thunked function similar to the way it reflects its <B>name</B>.  This change also allows thunk functions of a <code>this_call</code> to have the correct <code>this</code> pointer parameter.  Symbol table queries based upon name and/or namespace will always exclude default thunk functions. (GP-17)</li>
    <li><I>Listing</I>. Fixed #US table processing to correctly interpret the string as UTF-16LE for CIL binaries. (GP-318)</li>
    <li><I>Listing</I>. Fixed a sporadic listing operand hover stacktrace bug. (GP-987)</li>
    <li><I>PDB</I>. Escaped more character strings in MSDIA pdb.exe XML output. (GP-578, Issue #1690)</li>
    <li><I>Processors</I>. Fixed various issues pertaining to x86 instruction prefixes. (GP-220, Issue #2286, #2297)</li>
    <li><I>Processors</I>. Refactored PPC interrupt returns to include return pcode statement. (GP-703)</li>
    <li><I>Processors</I>. Fixed issue with ARM <code>VMRS</code> instruction parsing in thumb. (GP-735, Issue #2750)</li>
    <li><I>Processors</I>. Corrected issue with M68000 floating point dynamic k-factor instruction semantics. (GP-736, Issue #2754)</li>
    <li><I>Processors</I>. Fixed instruction semantics for x86 <code>MOVUPS</code> instruction. (GP-744, Issue #2789)</li>
    <li><I>Processors</I>. Simplified SuperH <code>div1</code> instruction.  Corrected several SuperH instructions to set flags properly around the delay slot. (GP-753, Issue #2863, #2864)</li>
    <li><I>Processors</I>. Corrected issue with ARM co-processor registers and the <code>MCR</code> instruction. (GP-761, Issue #2451)</li>
    <li><I>Processors</I>. Fixed issued with x86 <code>INSx.rep</code> and <code>OUTSx.rep</code> pcode ordering. (GP-766, Issue #2829)</li>
    <li><I>Processors</I>. Corrected addresses for PIC24 <code>TBLPAG</code> and <code>PSVPAG</code> registers. (GP-798, Issue #2844, #2855)</li>
    <li><I>Processors</I>. Corrected decoding of some <code>MODR/M</code> opcode bytes in x86. (GP-800, Issue #2504)</li>
    <li><I>Processors</I>. Updated 8085 processor definition to disassemble <code>XRA HL</code> instruction. (GP-818, Issue #2447)</li>
    <li><I>Processors</I>. Corrected missing optional <code>rex.w</code> prefix for x86 conditional jump instructions. (GP-837, Issue #1163)</li>
    <li><I>Processors</I>. Added <code>CALLW</code>, <code>ASRF</code>, <code>LSLF</code>, and <code>LSRF</code> instructions to PIC16 language. (GP-841, Issue #1362)</li>
    <li><I>Processors</I>. Fixed ARM Thumb instructions which update the status flags to now correctly append an <code><B>s</B></code> to the instruction mnemonic. (GP-881)</li>
    <li><I>Processors</I>. Made corrections to <code>wr</code> instruction for SPARC which in some cases did not write to the appropriate ASR register. (GP-928)</li>
    <li><I>Processors</I>. Corrected issue with x86-64 <code>CALL</code> and <code>RET</code> instructions with <code>0x67</code> prefix pushing/popping the wrong address size from the stack. (GP-954, Issue #2976)</li>
    <li><I>Processors</I>. Fixed issue with delay slots modifying some instructions in SuperH processor. (GP-969, Issue #2863)</li>
    <li><I>Processors</I>. Corrected pcode for x86-64 <code>RDMSR</code> instruction. (GP-982, Issue #3046)</li>
    <li><I>Processors</I>. Corrected size of 20-bit signed immediate value in PPC VLE <code>e_li</code> instruction. (GP-1060)</li>
    <li><I>Scripting</I>. Fixed scripting bug where showing a TableChooserDialog while having <code><B>AnalysisMode.DISABLED</B></code> in use caused the dialog to be closed. (GP-1018, Issue #3103)</li>
    <li><I>Sleigh</I>. Fixed multiple errors in x64 vector operation semantics. (GP-799)</li>
</ul>
</blockquote>

<H1 align="center">Ghidra 9.2.4 Change History (April 2021)</H1>
<blockquote><p><u><B>Improvements</B></u></p>
<ul>
    <li><I>Basic Infrastructure</I>. Improved support running under JDK 16.  Note that Ghidra still only officially supports JDK 11 LTS. (GP-824, Issue #2879, #2888)</li>
</ul>
</blockquote>
<blockquote><p><u><B>Bugs</B></u></p>
<ul>
    <li><I>API</I>. Corrected error condition which could occur if overlay memory block duplicates another memory space name or overlay block name in a case-insensitive manner.  The names are intended to be case-sensitive. (GP-839, Issue #2898)</li>
    <li><I>Demangler</I>. Improved handling of mangled names on thunk functions which were previously left unmangled and could prevent name of underlying thunked function from appearing. (GP-809)</li>
</ul>
</blockquote>

<H1 align="center">Ghidra 9.2.3 Change History (March 2021)</H1>
<blockquote><p><u><B>Improvements</B></u></p>
<ul>
    <li><I>Analysis</I>. Added check for vftable entries in <code>.NEP</code> section and relaxed the requirement that the code must have a return. (GP-649)</li>
    <li><I>Analysis</I>. Corrected flaw in RTTI analyzer determination of size of vftables. (GP-688)</li>
    <li><I>Basic Infrastructure</I>. Updated TLS protocol preference to use the most preferred/recent version available to both sides of an SSL connection (e.g., TLSv1.3) instead of forcing use of TLSv1.2. (GP-622)</li>
    <li><I>Build</I>. Corrected build issues which had prevented users from building Ghidra on an Apple M1 (OS X, AARCH64 architecture). (GP-600, Issue #2653)</li>
    <li><I>Demangler</I>. Increased  Gnu Demangler parsing performance by changing some regular expressions. (GP-705)</li>
    <li><I>Eclipse Integration</I>. Updated SleighEditor to support new endian tag on <B>define token</B> definitions. (GP-721)</li>
    <li><I>GUI</I>. Updated the Choose Data Type dialog to apply data types in the same manner as dragging types from the Data Types window.  This provides users more control when choosing how to overwrite existing types. (GP-521)</li>
    <li><I>Importer:ELF</I>. Added support for ELF relocation <code>R_X86_64_IRELATIVE</code>. (GP-651, Issue #1189)</li>
    <li><I>Importer:ELF</I>. Sped up loading of ELF files with large symbol tables. (GP-697)</li>
</ul>
</blockquote>
<blockquote><p><u><B>Bugs</B></u></p>
<ul>
    <li><I>Analysis</I>. The RTTI analyzer now runs prior to Reference analysis so that references into vftables are not turned into code or data before the vftables are created. (GP-517)</li>
    <li><I>API</I>. <code>Function.getCalledFunctions(TaskMonitor)</code> and <code>Function.getCallingFunctions(TaskMonitor)</code> now support passing <code>null</code> for the task monitor parameter, which previously would have thrown an exception. (GP-589, Issue #2643)</li>
    <li><I>Data Types</I>. Corrected segmented 32-bit pointer datatype address generation for 16:16 x86 far pointers. (GP-534, Issue #2548)</li>
    <li><I>Decompiler</I>. Fixed Decompiler issue where, when a function name extends beyond the line limit, an end-of-line comment could wrap around to additional lines without including additional <code>//</code> comment indicators. (GP-473)</li>
    <li><I>Decompiler</I>. Corrected an exception that could occur when attempting to edit function signature from the Decompiler. (GP-597, Issue #2601)</li>
    <li><I>Demangler</I>. Changed return type applied to constructors by Demangler from <code>void</code> to <code>Undefined</code>, allowing the Decompiler to determine the type. (GP-790)</li>
    <li><I>DWARF</I>. Improved handling of empty DWARF compile units. (GP-743)</li>
    <li><I>DWARF</I>. Improved handling of DWARF function signatures when parameter info contains unsupported location opcodes or failed to resolve datatypes. (GP-794)</li>
    <li><I>Eclipse Integration</I>. When installing the SleighEditor into Eclipse, the plugin will now show up under the Ghidra category.  Previously the <B>Group Items by Category</B> option had to be turned off before the SleighEditor would appear as a visible entry. (GP-564)</li>
    <li><I>Eclipse Integration</I>. Fixed an issue with Eclipse PyDev breakpoints not catching. (GP-668, Issue #2713)</li>
    <li><I>Eclipse Integration</I>. Fixed an Eclipse GhidraDev exception that occurred when creating a new Ghidra scripting project if a <B>~/ghidra_scripts</B> directory did not exist. (GP-669)</li>
    <li><I>Emulator</I>. Replaced Java floating point emulation to fix multiple rounding issues. (GP-357, Issue #2414)</li>
    <li><I>Graphing</I>. Fixed issue with graph filters not updating satellite view when changing edge filters. (GP-557)</li>
    <li><I>Graphing</I>. Fixed Function Graph keybindings that did not work when docked in the main Code Browser window. (GP-586, Issue #2641)</li>
    <li><I>GUI</I>. Fixed NullPointerException due to using <B>Go To</B> action when there was no open program in the Listing. (GP-66)</li>
    <li><I>GUI</I>. Fixed bug in Reference Code Viewer options that caused an exception. (GP-620, Issue #2672)</li>
    <li><I>Importer</I>. Fixed exception caused when importing previously exported XML data where the bookmark override option was turned off. (GP-667)</li>
    <li><I>Importer:ELF</I>. Fixed a NullPointerException caused by importing an ELF with an uninitialized <code>.got</code> section. (GP-360, Issue #2416)</li>
    <li><I>Importer:ELF</I>. Added Support for ELF <code>R_ARM_MOVW_ABS_NC</code> and <code>R_ARM_MOVT_ABS ELF</code> Relocations for ARM. (GP-555, Issue #2510)</li>
    <li><I>Importer:ELF</I>. Corrected ELF processing of <code>.init_array</code> and <code>.fini_array</code> which was incorrectly overadjusting entries for an image base change. (GP-699)</li>
    <li><I>Importer:Mach-O</I>. Corrected Mach-O fat-binary library import issue and resolved error related to unnamed Mach-O segment. (GP-652, Issue #2702)</li>
    <li><I>Importer:Mach-O</I>. Fixed an issue with DYLD Load Command data structures being created in the wrong locations. (GP-689, Issue #2624)</li>
    <li><I>Importer:Mach-O</I>. Fixed an exception that occurred when importing Mach-O files that define zero <code>LC_BUILD_VERSION</code> tool entries. (GP-702, Issue #2192)</li>
    <li><I>PDB</I>. Fixed createPdbXmlFiles.bat to permit spaces in the path name of Ghidra installation folder and the batch argument name. (GP-575, Issue #2167)</li>
    <li><I>PDB</I>. Fixed PDB Universal analyzer to set the run-once flag when finished. (GP-724)</li>
    <li><I>PDB</I>. Changed return type applied to constructors by PDB Universal from <code>void</code> to <code>Undefined</code>, allowing the Decompiler to determine the type. (GP-791)</li>
    <li><I>Processors</I>. Added missing <code>RFE</code> instruction in MIPS up to version R3000. (GP-33, Issue #1766)</li>
    <li><I>Processors</I>. ARM instruction <code>VMUL</code> now decodes correctly. (GP-627, Issue #2677)</li>
    <li><I>Processors</I>. Added missing <code>CFINV</code> instruction to AARCH64 processor specification and added definitions for locals in neon instructions. (GP-655, Issue #2710)</li>
    <li><I>Scripting</I>. Fixed analyzeHeadless <code><B>-scriptPath</B></code> option that didn't work for Python and other non-Java scripts located in non-default directories. (GP-528, Issue #2561)</li>
    <li><I>Scripting</I>. Fixed concurrency issue with management of scripting bundle paths. (GP-576)</li>
    <li><I>Scripting</I>. Corrected handling for Ghidra Script files which are symlinks that were broken in Ghidra 9.2. (GP-650, Issue #2698)</li>
    <li><I>Scripting</I>. Fixed the analyzeHeadless <code><B>-scriptPath</B></code> option to correctly parse <code><B>$GHIDRA_HOME</B></code> and <code><B>$USER_HOME</B></code>. (GP-781)</li>
</ul>
</blockquote>

<H1 align="center">Ghidra 9.2.2 Change History (December 2020)</H1>
<blockquote><p><u><B>Bugs</B></u></p>
<ul>
    <li><I>Graphing</I>. Fixed issue with Graph filters not working and satellite view sometimes not matching graph. (GP-526)</li>
    <li><I>Importer:Mach-O</I>. Mach-O DYLD cache incorrect offset use has been fixed. (GP-550, Issue #2560)</li>
    <li><I>Listing</I>. Fixed issue where <B>Edit Label</B> action (L key) did not work on primary function symbols. (GP-537)</li>
    <li><I>Multi-User</I>. Corrected Ghidra Server build issue for version 9.2.1 which had an improperly generated <B>classpath.frag</B> file.  Issue caused server to fail startup with a ClassNotFoundException. (GP-542)</li>
    <li><I>Processors</I>. The V850 <code>JMP</code> instruction has been corrected not to use the PC in the address calculation. (GP-548, Issue #2570)</li>
    <li><I>Processors</I>. Removed erroneous VST4 variant, most likely from a copy/paste error.  This fixes the ARM Thumb BL instruction disassembly with a negative offset. (GP-549, Issue #2559)</li>
</ul>
</blockquote>

<H1 align="center">Ghidra 9.2.1 Change History (December 2020)</H1>
<blockquote><p><u><B>Improvements</B></u></p>
<ul>
    <li><I>Analysis</I>. Updated RTTI analyzer to find <code>type_info</code> vftable when it cannot be found with its mangled name. This will enable many more Windows programs to have their RTTI structures created that were unable to be parsed in previous Ghidra versions. (GP-141)</li>
    <li><I>API</I>. Relaxed memory block naming restrictions and restored ability to have spaces in memory block names.  However, if a memory block is flagged as an overlay, the associated overlay space name may be modified to ensure validity and uniqueness.  The DuplicateNameException has been removed from all memory block API methods since this was entirely an overlay space concern.  Memory block GUI has also been changed eliminate the duplicate block name restriction. (GP-420, Issue #2465)</li>
    <li><I>Build</I>. Eliminated the need for installation of <B>bison</B> and <B>flex</B> when performing source-based <B>gradle</B> build of Ghidra or the Decompiler module.  The generated files are now included with source files and maintained in source control.  A separate <code><B>gradle Decompiler:generateParsers</B></code> task, which still requires <B>bison</B> and <B>flex</B>, must be used, explicitly, when changes are made to lex/yacc source files. (GP-467)</li>
    <li><I>Graphing</I>. Fixed issue with exporting graphs to DOT format due to invalid vertex IDs. (GP-280)</li>
    <li><I>Graphing</I>. Improved graphing where it did not navigate when clicking on external function nodes. Now it will navigate to the <B>fake</B> function location in the program, which is the location of the pointer to the external function. (GP-493)</li>
    <li><I>Listing:Symbols</I>. Removed restriction for naming labels that resemble default label names. (GT-3185, Issue #1057)</li>
    <li><I>PDB</I>. Crafted PDB type ID records <code>0x1608</code> and <code>0x1609</code> with presumed <B>class</B> and <B>struct</B> types and follow-on application of these types. Also fixed up some fall-back data type logic and improved some warning messages to reflect the <B>cause</B> of the conditions. (GP-474, Issue #2523)</li>
    <li><I>Scripting</I>. Removed unnecessary 1-second delay when launching a script. (GP-443)</li>
</ul>
</blockquote>
<blockquote><p><u><B>Bugs</B></u></p>
<ul>
    <li><I>Analysis</I>. Fixed the processing of CIL metadata that express arrays of non-primitive types. (GP-331)</li>
    <li><I>API</I>. WrappedMemBuffer methods <code>getInt</code>, <code>getShort</code>, <code>getLong</code>, and <code>getBigInteger</code> have been fixed when allocated at a non-zero offset, wrapping another MemBuffer such as DumbMemBufferImpl. (GP-486)</li>
    <li><I>Decompiler</I>. Fixed issue with the Auto Create/Fill Structure command that caused it to silently miss some pointer accesses. (GP-344)</li>
    <li><I>Decompiler</I>. Jump table recovery now takes into account encoded bits, like ARM/THUMB mode transition, that may be present in address tables. (GP-387, Issue #2420)</li>
    <li><I>Decompiler</I>. Fixed a bug in the Decompiler <B>renaming</B> action when applied to function references. (GP-477, Issue #2415)</li>
    <li><I>Decompiler</I>. Corrected 8-byte return value storage specification in compiler-spec affecting <code>longlong</code> and <code>double</code> return values.  Endianness ordering of <code>r0</code>/<code>r1</code> was incorrect. (GP-512, Issue #2547)</li>
    <li><I>Graphing</I>. Fixed the Function Graph's <B>drag-to-select-nodes</B> feature. (GP-430)</li>
    <li><I>Graphing</I>. Fixed issue where the graph in the satellite view is sometimes truncated. (GP-469)</li>
    <li><I>Graphing</I>. Fixed a stack trace issue caused by reusing a graph display window to show a graph that is larger than is allowed. (GP-492)</li>
    <li><I>Graphing</I>. Fixed issue where graph satellite view did not reflect main graph when graph vertices are hidden using hide actions or filters. (GP-514)</li>
    <li><I>GUI</I>. Fixed stack overflow in TableChooserDialogs. (GP-460, Issue #2536)</li>
    <li><I>PDB</I>. Corrected PDB parser selection bug affecting PDB load/download on Windows. (GP-390)</li>
    <li><I>Processors</I>. Fixed handling of certain ARM/THUMB switch calculation functions. (GP-389)</li>
</ul>
</blockquote>

<H1 align="center">Ghidra 9.2 Change History (November 2020)</H1>
<blockquote><p><u><B>New Features</B></u></p>
<ul>
    <li><I>Graphing</I>. A new graph service and implementation was created. The graph service provides basic graphing capabilities. It was also used to generate several different types of graphs including code block graphs, call graphs, and AST graphs. In addition, an export graph service was created that supports various formats. (GP-211)</li>
    <li><I>PDB</I>. Added a new, prototype, platform-independent PDB analyzer that processes and applies data types and symbols to a program from a raw (non-XML-converted) PDB file, allowing users to more easily take advantage of PDB information. (GT-3112)</li>
    <li><I>Processors</I>. Added M8C SLEIGH processor specification. (GT-3052)</li>
    <li><I>Processors</I>. Added support for the RISC-V processor. (GT-3389, Issue #932)</li>
    <li><I>Processors</I>. Added support for the Motorola 6809 processor. (GT-3390, Issue #1201)</li>
    <li><I>Processors</I>. Added CP1600-series processor support. (GT-3426, Issue #1383)</li>
    <li><I>Processors</I>. Added V850 processor module. (GT-3523, Issue #1430)</li>
</ul>
</blockquote>
<blockquote><p><u><B>Improvements</B></u></p>
<ul>
    <li><I>Analysis</I>. Increased the speed of the Embedded Media Analyzer, which was especially poor for large programs, by doing better checking and reducing the number of passes over the program. (GT-3258)</li>
    <li><I>Analysis</I>. Improved the performance of the RTTI analyzer. (GT-3341, Issue #10)</li>
    <li><I>Analysis</I>. The handling of Exception records found in GCC-compiled binaries has been sped up dramatically.  In addition, incorrect code disassembly has been corrected. (GT-3374)</li>
    <li><I>Analysis</I>. Updated Auto-analysis to preserve work when encountering recoverable exceptions. (GT-3599)</li>
    <li><I>Analysis</I>. Improved efficiency when creating or checking for functions and namespaces which overlap. (GP-21)</li>
    <li><I>Analysis</I>. Added partial support of Clang for Windows. (GP-64)</li>
    <li><I>Analysis</I>. RTTI structure processing speed has been improved with a faster technique for finding the root RTTI type descriptor. (GP-168, Issue #2075)</li>
    <li><I>API</I>. The performance of adding large numbers of data types to the same category has been improved. (GT-3535)</li>
    <li><I>API</I>. Added the BigIntegerNumberInputDialog that allows users to enter integer values larger than <code>Integer.MAX_VALUE</code> (2147483647). (GT-3607)</li>
    <li><I>API</I>. Made JSON more available using GSON. (GP-89, Issue #1982)</li>
    <li><I>Basic Infrastructure</I>. Introduced an extension point <code>priority</code> annotation so users can control extension point ordering. (GT-3350, Issue #1260)</li>
    <li><I>Basic Infrastructure</I>. Changed file names in <B>launch.bat</B> to always run executables from System32. (GT-3614, Issue #1599)</li>
    <li><I>Basic Infrastructure</I>. Unknown platforms now default to 64-bit. (GT-3615, Issue #1499)</li>
    <li><I>Basic Infrastructure</I>. Updated sevenzipjbinding library to version 16.02-2.01. (GP-254)</li>
    <li><I>Build</I>. Ghidra's native Windows binaries can now be built using Visual Studio 2019. (GT-3277, Issue #999)</li>
    <li><I>Build</I>. Extension builds now exclude gradlew artifacts from zip file. (GT-3631, Issue #1763)</li>
    <li><I>Build</I>. Reduced the number of duplicated help files among the build jar files. (GP-57, Issue #2144)</li>
    <li><I>Build</I>. Git commit hash has been added to <B>application.properties</B> file for every build (not just releases). (GP-67)</li>
    <li><I>Contrib</I>. Extensions are now installed to the user's settings directory, not the Ghidra installation directory. (GT-3639, Issue #1960)</li>
    <li><I>Data Types</I>. Added mutability data settings (constant, volatile) for Enum datatype. (GT-3415)</li>
    <li><I>Data Types</I>. Improved Structure Editor's <B>Edit Component</B> action to work on array pointers. (GP-205, Issue #1633)</li>
    <li><I>Decompiler</I>. Added Secondary Highlights to the Decompiler.  This feature allows the user to create a highlight for a token to show all occurrences of that token.  Further, multiple secondary highlights are allowed at the same time, each using a unique color.  See the Decompiler help for more information. (GT-3292, Issue #784)</li>
    <li><I>Decompiler</I>. Added heuristics to the Decompiler to better distinguish whether a constant pointer refers to something in the CODE or DATA address space, for Harvard architectures. (GT-3468)</li>
    <li><I>Decompiler</I>. Improved Decompiler analysis of local variables with small data types, eliminating unnecessary casts and mask operations. (GT-3525)</li>
    <li><I>Decompiler</I>. Documentation for the Decompiler, accessible from within the Code Browser, has been rewritten and extended. (GP-166)</li>
    <li><I>Decompiler</I>. The Decompiler can now display the namespace path (or part of it) of symbols it renders.  With the default display configuration, the minimal number of path elements necessary are printed to fully resolve the symbol within the current scope. (GP-236)</li>
    <li><I>Decompiler</I>. The Decompiler now respects the <B>Charset</B> and <B>Translate</B> settings for string literals it displays. (GP-237)</li>
    <li><I>Decompiler</I>. The Decompiler's analysis of array accesses is much improved. It can detect more and varied access patterns produced by optimized code, even if the base offset is not contained in the array.  Multi-dimensional arrays are detected as well. (GP-238, Issue #461, #1348)</li>
    <li><I>Decompiler</I>. Extended the Decompiler's support for analyzing class methods.  The class data type is propagated through the <B>this</B> pointer even in cases where the full prototype of the method is not known.  The methods <code>isThisPointer()</code> and <code>isHiddenReturn()</code> are now populated in HighSymbol objects and are accessible in Ghidra scripts. (GP-239, Issue #2151)</li>
    <li><I>Decompiler</I>. The Decompiler will now infer a string pointer from a constant that addresses the interior of a string, not just the beginning. (GP-240, Issue #1502)</li>
    <li><I>Decompiler</I>. The Decompiler now always prints the full precision of floating-point values, using the minimal number of characters in either fixed point or scientific notation. (GP-241, Issue #778)</li>
    <li><I>Decompiler</I>. The Decompiler's <B>Auto Create Structure</B> command now incorporates into new structures data-type information from function prototypes.  The <B>Auto Fill in Structure</B> variant of the command will override <B>undefined</B> and other more general data-types with discovered data-types if they are more specific. (GP-242)</li>
    <li><I>Demangler</I>. Modified Microsoft Demangler (MDMang) to handle symbols represented by MD5 hash codes when their normal mangled length exceeds 4096. (GT-3409, Issue #1344)</li>
    <li><I>Demangler</I>. Upgraded the GNU Demangler to version 2.33.1.  Added support for the now-deprecated GNU Demangler version 2.24 to be used as a fallback option for demangling. (GT-3481, Issue #1195, #1308, #1451, #1454)</li>
    <li><I>Demangler</I>. The Demangler now more carefully applies information if generic changes have been made.  Previously if the function signature had changed in any way from default, the demangler would not attempt to apply any information including the function name. (GP-12)</li>
    <li><I>Demangler</I>. Changed MDMang so cast operator names are complete within the qualified function name, effecting what is available from internal API. (GP-13)</li>
    <li><I>Demangler</I>. Added additional MDMang Extended Types such as <code>char8_t</code>, <code>char16_t</code>, and <code>char32_t</code>. (GP-14)</li>
    <li><I>Documentation</I>. Removed Eclipse BuildShip instructions from the DevGuide. (GT-3634, Issue #1735)</li>
    <li><I>FID</I>. Regenerated FunctionID databases. Added support for Visual Studio versions 2017 and 2019. (GP-170)</li>
    <li><I>Function Diff</I>. Users may now add functions ad-hoc to existing function comparison panels. (GT-2229)</li>
    <li><I>Function Graph</I>. Added <B>Navigation History</B> Tool option for Function Graph to signal it to produce fewer navigation history entries. (GT-3233, Issue #1115)</li>
    <li><I>GUI</I>. Users can now view the Function Tag window to see all functions associated with a tag, without having to inspect the Listing. (GT-3054)</li>
    <li><I>GUI</I>. Updated the <B>Copy Special</B> action to work on the current address when there is no selection. (GT-3155, Issue #1000)</li>
    <li><I>GUI</I>. Significantly improved the performance of filtering trees in the Ghidra GUI. (GT-3225)</li>
    <li><I>GUI</I>. Added many optimizations to increase the speed of table sorting and filtering. (GT-3226, Issue #500)</li>
    <li><I>GUI</I>. Improved performance of bit view component recently introduced to Structure Editor. (GT-3244, Issue #1141)</li>
    <li><I>GUI</I>. Updated usage of timestamps in the UI to be consistent. (GT-3286)</li>
    <li><I>GUI</I>. Added tool actions for navigating to the next/previous functions in the navigation history. (GT-3291, Issue #475)</li>
    <li><I>GUI</I>. Filtering now works on all tables in the Function Tag window. (GT-3329)</li>
    <li><I>GUI</I>. Updated the Ghidra File Chooser so that users can type text into the list and table views in order to quickly jump to a desired file. (GT-3396)</li>
    <li><I>GUI</I>. Improved the performance of the Defined Strings table. (GT-3414, Issue #1259)</li>
    <li><I>GUI</I>. Updated Ghidra to allow users to set a key binding to perform an equivalent operation to double-clicking the <code>XREF</code> field in the Listing.  See the <B>Show Xrefs</B> action in the <B>Tool Options... Key Bindings</B> section. (GT-3446)</li>
    <li><I>GUI</I>. Improved mouse wheel scrolling in Listing and Byte Viewers. (GT-3473)</li>
    <li><I>GUI</I>. Ghidra's action context mechanism was changed so that actions that modify the program are not accidentally invoked in the wrong context, thus possibly modifying the program in ways the user did not want or without the user knowing that it happened.  This also fixed an issue where the navigation history drop-down menu did not represent the locations that would be used if the next/previous buttons were pressed. (GT-3485)</li>
    <li><I>GUI</I>. Updated Ghidra tables to defer updating while analysis is running. (GT-3604)</li>
    <li><I>GUI</I>. Updated Font Size options to allow the user to set any font size. (GT-3606, Issue #160, #1541)</li>
    <li><I>GUI</I>. Added ability to overlay text on an icon. (GP-41)</li>
    <li><I>GUI</I>. Updated Ghidra options to allow users to clear default key binding values. (GP-61, Issue #1681)</li>
    <li><I>GUI</I>. ToggleDirectionAction button now shows in snapshot windows. (GP-93)</li>
    <li><I>GUI</I>. Added a new action to the Symbol Tree to allow users to convert a Namespace to a Class. (GP-225, Issue #2301)</li>
    <li><I>Importer</I>. Updated the XML Loader to parse symbol names for namespaces. (GT-3293)</li>
    <li><I>Importer:ELF</I>. Added support for processing Android packed ELF Relocation Tables. (GT-3320, Issue #1192)</li>
    <li><I>Importer:ELF</I>. Added ELF import opinion for ARM BE8. (GT-3642, Issue #1187)</li>
    <li><I>Importer:ELF</I>. Added support for ELF RELR relocations, such as those produced for Android. (GP-348)</li>
    <li><I>Importer:Mach-O</I>. DYLD Loader can now load x86_64 DYLD from macOS. (GT-3611, Issue #1566)</li>
    <li><I>Importer:PE</I>. Improved parsing of Microsoft ordinal map files produced with <code>DUMPBIN /EXPORTS</code> (see <B>Ghidra/Features/Base/data/symbols/README.txt</B>). (GT-3235)</li>
    <li><I>Jython</I>. Upgraded Jython to version 2.7.2. (GP-109)</li>
    <li><I>Listing</I>. In the PCode field of the Listing, accesses of varnodes in the <code>unique</code> space are now always shown with the size of the access.  Fixed bug which would cause the PCode emulator to reject valid pcode in rare instances. (GP-196)</li>
    <li><I>Listing:Data</I>. Improved handling and display of character sequences embedded in operands or integer values. (GT-3347, Issue #1241)</li>
    <li><I>Multi-User:Ghidra Server</I>. Added ability to specify initial Ghidra Server user password (<code><B>-a0</B></code> mode only) for the svrAdmin <B>add</B> and <B>reset</B> commands. (GT-3640, Issue #321)</li>
    <li><I>Processors</I>. Updated AVR8 ATmega256 processor model to reflect correct memory layout specification. (GT-933)</li>
    <li><I>Processors</I>. Implemented semantics for <code>vstmia/db</code> <code>vldmia/db</code>, added missing instructions, and fixed shift value for several instructions for the ARM/Thumb NEON instruction set. (GT-2567)</li>
    <li><I>Processors</I>. Added the XMEGA variant of the AVR8 processor with general purpose registers moved to a non-memory-mapped register space. (GT-2909)</li>
    <li><I>Processors</I>. Added support for x86 <code>SALC</code> instruction. (GT-3367, Issue #1303)</li>
    <li><I>Processors</I>. Implemented pcode for 6502 <code>BRK</code> instruction. (GT-3375, Issue #1049)</li>
    <li><I>Processors</I>. Implemented x86 <code>PTEST</code> instruction. (GT-3380, Issue #1295)</li>
    <li><I>Processors</I>. Added missing instructions to ARM language module. (GT-3394)</li>
    <li><I>Processors</I>. Added support for <code>RDRAND</code> and <code>RDSEED</code> instructions to x86-32. (GT-3413)</li>
    <li><I>Processors</I>. Improved x86 breakpoint disassembly. (GT-3421, Issue #872)</li>
    <li><I>Processors</I>. Added manual index file for the M6809 processor. (GT-3449, Issue #1414)</li>
    <li><I>Processors</I>. Corrected issues related to retained instruction context during a language upgrade.  In some rare cases this retained context could interfere with the instruction re-disassembly.  This context-clearing mechanism is controlled by a new pspec property: <code>resetContextOnUpgrade</code>. (GT-3531)</li>
    <li><I>Processors</I>. Updated PIC24/PIC30 index file to match latest manual.  Added support for dsPIC33C. (GT-3562)</li>
    <li><I>Processors</I>. Added missing call-fixup to handle call side-effects for 32 bit GCC programs for <code>get_pc_thunk.ax/si</code>. (GP-10)</li>
    <li><I>Processors</I>. Added <code>ExitProcess</code> to PEFunctionsThatDoNotReturn. (GP-35)</li>
    <li><I>Processors</I>. <B>External Disassembly</B> field in the Listing now shows Thumb disassembly when appropriate TMode context has been established on a memory location. (GP-49)</li>
    <li><I>Processors</I>. Changed RISC-V jump instructions to the more appropriate <code>goto</code> instead of <code>call</code>. (GP-54, Issue #2120)</li>
    <li><I>Processors</I>. Updated AARCH64 to v8.5, including new MTE instructions. (GP-124)</li>
    <li><I>Processors</I>. Added support for floating point params and return for SH4 processor calling conventions. (GP-183, Issue #2218)</li>
    <li><I>Processors</I>. Added semantic support for many AARCH64 neon instructions. Addresses for register lanes are now precalculated, reducing the amount of p-code generated. (GP-343)</li>
    <li><I>Processors</I>. Updated RISCV processor to include reorganization, new instructions, and fixes to several instructions. (GP-358, Issue #2333)</li>
    <li><I>Program API</I>. Improved multi-threaded ProgramDB access performance. (GT-3262)</li>
    <li><I>Scripting</I>. Improved <B>ImportSymbolScript.py</B> to import functions in addition to generic labels. (GT-3249, Issue #946)</li>
    <li><I>Scripting</I>. Python scripts can now call protected methods from the GhidraScript API. (GT-3334, Issue #1250)</li>
    <li><I>Scripting</I>. Updated scripting feature with better change detection, external jar dependencies, and modularity. (GP-4)</li>
    <li><I>Scripting</I>. Updated the GhidraDev plugin (v2.1.1) to support Python Debugging when PyDev is installed via the Eclipse <B>dropins</B> directory. (GP-186, Issue #1922)</li>
    <li><I>Sleigh</I>. Error messages produced by the SLEIGH compiler have been reformatted to be more consistent in layout as well as more descriptive and more consistent in providing line number information. (GT-3174)</li>
</ul>
</blockquote>
<blockquote><p><u><B>Bugs</B></u></p>
<ul>
    <li><I>Analysis</I>. Function start patterns found at 0x0, function signatures applied from the Data Type Manager at 0x0, and DWARF debug symbols applied at 0x0 will no longer cause stack traces.  In addition, DWARF symbols with zero length address range no longer stack trace. (GT-2817, Issue #386, #1560)</li>
    <li><I>Analysis</I>. Constant propagation will treat an OR with zero (0) as a simple copy. (GT-3548, Issue #1531)</li>
    <li><I>Analysis</I>. Corrected <B>Create Structure from Selection</B>, which failed to use proper data organization during the construction process.  This could result in improperly sized components such as pointers and primitive types. (GT-3587)</li>    
    <li><I>Analysis</I>. Fixed an issue where stored context is initializing the set of registers constantly. (GP-25)</li>
    <li><I>Analysis</I>. Fixed an RTTI Analyzer regression when analyzing RTTI0 structures with no RTTI4 references to them. (GP-62, Issue #2153)</li>
    <li><I>Analysis</I>. Fixed an issue where the RTTI analyzer was not filling out RTTI3 structures in some cases. (GP-111)</li>
    <li><I>API</I>. Fixed NullPointerException when attempting to delete all bookmarks from a script. (GT-3405)</li>
    <li><I>API</I>. Updated the Class Searcher so that Extension Points found in the <B>Ghidra/patch</B> directory get loaded. (GT-3547, Issue #1515)</li>
    <li><I>Build</I>. Updated dependency fetch script to use HTTPS when downloading CDT. (GP-69, Issue #2173)</li>
    <li><I>Build</I>. Fixed resource leak in Ghidra jar builder. (GP-342)</li>
    <li><I>Byte Viewer</I>. Fixed Byte Viewer to correctly load the middle-mouse highlight color options change. (GT-3471, Issue #1464, #1465)</li>
    <li><I>Data Types</I>. Fixed decoding of static strings that have a character set with a smaller character size than the platform's character size. (GT-3333, Issue #1255)</li>
    <li><I>Data Types</I>. Correctly handle Java character sets that do not support the encoding operation. (GT-3407, Issue #1358)</li>
    <li><I>Data Types</I>. Fixed bug that caused Data Type Manager Editor key bindings to get deleted. (GT-3411, Issue #1355)</li>
    <li><I>Data Types</I>. Updated the DataTypeParser to handle data type names containing templates. (GT-3493, Issue #1417)</li>
    <li><I>Data Types</I>. Corrected pointer data type <code>isEquivalent()</code> method to properly check the equivalence of the base data type.  The old implementation could cause a pointer to be replaced by a conflicting pointer with the same name whose base datatype is not equivalent.  This change has a negative performance impact associated with it and can cause additional conflict datatypes due to the rigid datatype relationships. (GT-3557)</li>
    <li><I>Data Types</I>. Improved composite conflict resolution performance and corrected composite merge issues when composite bitfields and/or flexible arrays are present. (GT-3571)</li>
    <li><I>Data Types</I>. Fixed bug in SymbolPathParser naive parse method that caused a less-than-adequate fall-back parse when angle bracket immediately followed the namespace delimiter. (GT-3620)</li>
    <li><I>Data Types</I>. Corrected size of <code><B>long</B></code> for AARCH64 per LP64 standard. (GP-175)</li>
    <li><I>Decompiler</I>. Fixed bug causing the Decompiler to miss symbol references when they are stored to the heap. (GT-3267)</li>
    <li><I>Decompiler</I>. Fixed bug in the Decompiler that caused <code>Deleting op with descendants</code> exception. (GT-3506)</li>
    <li><I>Decompiler</I>. Decompiler now correctly compensates for integer promotion on shift, division, and remainder operations. (GT-3572)</li>
    <li><I>Decompiler</I>. Fixed handling of 64-bit implementations of alloca_probe in the Decompiler. (GT-3576)</li>
    <li><I>Decompiler</I>. Default Decompiler options now minimize the risk of losing code when renaming or retyping variables. (GT-3577)</li>
    <li><I>Decompiler</I>. The Decompiler no longer inherits a variable name from a subfunction if that variable incorporates additional data-flow unrelated to the subfunction. (GT-3580)</li>
    <li><I>Decompiler</I>. Fixed the Decompiler <B>Override Signature</B> action to be enabled on the entire C-code statement. (GT-3636, Issue #1589)</li>
    <li><I>Decompiler</I>. Fixed frequent ClassCast and IllegalArgument exceptions when performing <B>Auto Create Structure</B> or <B>Auto Create Class</B> actions in the Decompiler. (GP-119)</li>
    <li><I>Decompiler</I>. Fixed a bug in the Decompiler that caused different variables to be assigned the same name in rare instances. (GP-243, Issue #1995)</li>
    <li><I>Decompiler</I>. Fixed a bug in the Decompiler that caused <code>PTRSUB off of non-pointer type</code> exceptions. (GP-244, Issue #1826)</li>
    <li><I>Decompiler</I>. Fixed a bug in the Decompiler that caused load operations from volatile memory to be removed as dead code. (GP-245, Issue #393, #1832)</li>
    <li><I>Decompiler</I>. Fixed a bug causing the Decompiler to miss a stack alias if its offset was, itself, stored on the stack. (GP-246)</li>
    <li><I>Decompiler</I>. Fixed a bug causing the Decompiler to lose Equate references to constants passed to functions that were called indirectly. (GP-247)</li>
    <li><I>Decompiler</I>. Addressed various situations where the Decompiler unexpectedly removes active instructions as dead code after renaming or retyping a stack location. If the location was really an array element or structure field, renaming forced the Decompiler to treat the location as a distinct variable. Subsequently, the Decompiler thought that indirect references based before the location could not alias any following stack locations, which could then by considered dead. As of the 9.2 release, the Decompiler's renaming action no longer switches an annotation to <code>forcing</code> if it wasn't already. A retyping action, although it is <code>forcing</code>, won't trigger alias blocking for atomic data-types (this is configurable). (GP-248, Issue #524, #873)</li>
    <li><I>Decompiler</I>. Fixed decompiler memory issues reported by a community security researcher. (GP-267)</li>
    <li><I>Decompiler</I>. Fix for Decompiler error: <code>Pcode: XML comms: Missing symref attribute in &lt;high&gt; tag</code>. (GP-352, Issue #2360)</li>
    <li><I>Decompiler</I>. Fixed bug preventing the Decompiler from seeing Equates attached to <B>compare</B> instructions. (GP-369, Issue #2386)</li>
    <li><I>Demangler</I>. Fixed the GnuDemangler to parse the full namespace for <code>operator</code> symbols. (GT-3474, Issue #1441, #1448)</li>
    <li><I>Demangler</I>. Fixed numerous GNU Demangler parsing issues.  Most notable is the added support for C++ Lambda functions. (GT-3545, Issue #1457, #1569)</li>
    <li><I>Demangler</I>. Updated the GNU Demangler to correctly parse and apply C++ strings using the <code>unnamed type</code> syntax. (GT-3645)</li>
    <li><I>Demangler</I>. Fixed duplicate namespace entry returned from <code>getNamespaceString()</code> on DemangledVariable. (GT-3646, Issue #1729)</li>
    <li><I>Demangler</I>. Fixed a GnuDemangler ClassCastException when parsing a <code>typeinfo</code> string containing <code>operator</code> text. (GP-160, Issue #1870, #2267)</li>
    <li><I>Demangler</I>. Added <B>stdlib.h</B> include to the GNU Demangler to fix a build issue on some systems. (GP-187, Issue #2294)</li>
    <li><I>DWARF</I>. Corrected DWARF relocation handling where the address image base adjustment was factored in twice. (GT-3330)</li>
    <li><I>File Formats</I>. Fixed a potential divide-by-zero exception in the EXT4 file system. (GT-3400, Issue #1342)</li>
    <li><I>File Formats</I>. Fixed date and time parsing of dates in cdrom <code>iso9660</code> image files. (GT-3451, Issue #1403)</li>
    <li><I>Graphing</I>. Fixed a ClassCastException sometimes encountered when performing <B>Select -> Scoped Flow -> Forward Scoped Flow</B>. (GP-180)</li>
    <li><I>GUI</I>. Fixed inconsistent behavior with the interactive python interpreter's key bindings. (GT-3282)</li>
    <li><I>GUI</I>. Fixed Structure Editor bug that prevented the <B>F2 Edit</B> action from editing the correct table cell after using the arrow keys. (GT-3308, Issue #703)</li>
    <li><I>GUI</I>. Updated the Structure Editor so the <B>Delete</B> action is put into a background task to prevent the UI from locking. (GT-3352)</li>
    <li><I>GUI</I>. Fixed IndexOutOfBoundsException when invoking column filter on Key Bindings table. (GT-3445)</li>
    <li><I>GUI</I>. Fixed the analysis log dialog to not consume all available screen space. (GT-3610)</li>
    <li><I>GUI</I>. Fixed issue where <B>Location</B> column, when used in the column filters, resulted in extraneous dialogs popping up. (GT-3623)</li>
    <li><I>GUI</I>. Fixed Data Type Preview <B>copy</B> action so that newlines are preserved; updated table export to CSV to escape quotes and commas. (GT-3624)</li>
    <li><I>GUI</I>. Fixed tables in Ghidra to copy the text that is rendered.  Some tables mistakenly copied the wrong value, such as the Functions Table's Function Signature Column. (GT-3629, Issue #1628)</li>
    <li><I>GUI</I>. Structure editor name now updates in title bar and tab when structure is renamed. (GP-19)</li>
    <li><I>GUI</I>. Fixed an issue where drag-and-drop import locks the Windows File Explorer source window until the import dialog is closed by the user. (GP-27)</li>
    <li><I>GUI</I>. Fixed an issue in GTreeModel where fireNodeChanged had no effect. This could result in stale node information and truncation of the text associated with a node in a GTree. (GP-30)</li>
    <li><I>GUI</I>. Fixed an issue where the file chooser directory list truncated filenames with ellipses on HiDPI Windows. (GP-31)</li>
    <li><I>GUI</I>. Fixed an uncaught exception when double-clicking on <code>UndefinedFunction_</code> in Decompiler window. (GP-40)</li>
    <li><I>GUI</I>. Updated error handling to only show one dialog when a flurry of errors is encountered. (GP-65, Issue #2185)</li>
    <li><I>GUI</I>. Fixed an issue where Docking Windows are restored incorrectly if a snapshot is present. (GP-92)</li>
    <li><I>GUI</I>. Fixed a File Chooser bug causing a NullPointerException for some users. (GP-171, Issue #1706)</li>
    <li><I>GUI</I>. Fixed an issue that caused the script progress bar to appear intermittently. (GP-179, Issue #1819)</li>
    <li><I>GUI</I>. Fixed a bug that caused Call Tree nodes to go missing when showing more than one function with the same name. (GP-213, Issue #1682)</li>
    <li><I>GUI:Project Window</I>. Fixed Front End <B>copy</B> action to allow for the copy of program names so that users can paste those names into external applications. (GT-3403, Issue #1257)</li>
    <li><I>Headless</I>. Headless Ghidra now properly honors the <code><B>-processor</B></code> flag, even if the specified processor is not a valid <B>opinion</B>. (GT-3376, Issue #1311)</li>
    <li><I>Importer</I>. Corrected an NeLoader flags parsing error. (GT-3381, Issue #1312)</li>
    <li><I>Importer</I>. Fixed the <B>File -> Add to Program...</B> action to not show a memory conflict error when the user is creating an overlay. (GT-3491, Issue #1376)</li>
    <li><I>Importer</I>. Updated the XML Importer to apply repeatable comments. (GT-3492, Issue #1423)</li>
    <li><I>Importer</I>. Fixed issue in Batch Import where only one item of a selection was removed when attempting to remove a selection of items. (GP-138)</li>
    <li><I>Importer</I>. Corrected various issues with processing crushed PNG images. (GP-146, Issue #1854, #1874, #1875, #2252)</li>
    <li><I>Importer</I>. Fixed RuntimeException occurrence when trying to load NE programs with unknown resources. (GP-182, Issue #1596, #1713, #2012)</li>
    <li><I>Importer</I>. Fixed batch import to handle IllegalArgumentExceptions thrown by loaders. (GP-227, Issue #2328)</li>
    <li><I>Importer:ELF</I>. Corrected ELF relocation processing for ARM BE8 (mixed-endian). (GT-3527, Issue #1494)</li>
    <li><I>Importer:ELF</I>. Corrected ELF relocation processing for <code>R_ARM_PC24</code> (Type: 1) that was causing improper flow in ARM disassembly. (GT-3654)</li>
    <li><I>Importer:ELF</I>. Corrected ELF import processing of <code>DT_JMPREL</code> relocations and markup of associated PLT entries. (GP-252, Issue #2334)</li>
    <li><I>Importer:PE</I>. Fixed an IndexOutOfBoundsException in the PeLoader that occurred when the size of a section extends past the end of the file. (GT-3433, Issue #1371)</li>
    <li><I>Listing:Comments</I>. Fixed bug in Comment field that prevented navigation when clicking on an address or symbol where tabs were present in the comment. (GT-3440)</li>
    <li><I>Memory</I>. Fixed bug where sometimes random bytes are inserted instead of <code>0x00</code> when expanding a memory block. (GT-3465)</li>
    <li><I>Processors</I>. Corrected the offset in SuperH instructions generated by sign-extending a 20-bit immediate value composed of two sub-fields. (GT-3251, Issue #1161)</li>
    <li><I>Processors</I>. Fixed AVR8 addition/subtraction flag macros. (GT-3276)</li>
    <li><I>Processors</I>. Corrected <code>XGATE</code> <code>ROR</code> instruction semantics. (GT-3278)</li>
    <li><I>Processors</I>. Corrected semantics for SuperH <code>movi20</code> and <code>movi20s</code> instructions. (GT-3337, Issue #1264)</li>
    <li><I>Processors</I>. Corrected SuperH floating point instruction token definition. (GT-3340, Issue #1265)</li>
    <li><I>Processors</I>. Corrected SuperH <code>movu.b</code> and <code>movu.w</code> instruction semantics. (GT-3345, Issue #1271)</li>
    <li><I>Processors</I>. Corrected AVR8 <code>lpm</code> and <code>elpm</code> instruction semantics. (GT-3346, Issue #631)</li>
    <li><I>Processors</I>. Corrected pcode for the 6805 <code>BSET</code> instruction. (GT-3366, Issue #1307)</li>
    <li><I>Processors</I>. Corrected ARM constructors for instructions <code>vnmla</code>, <code>vnmls</code>, and <code>vnmul</code>. (GT-3368, Issue #1277)</li>
    <li><I>Processors</I>. Corrected bit-pattern for ARM <code>vcvt</code> instruction. (GT-3369, Issue #1278)</li>
    <li><I>Processors</I>. Corrected TriCore <code>abs</code> instructions. (GT-3379, Issue #1286)</li>
    <li><I>Processors</I>. Corrected x86 <code>BT</code> instruction semantics. (GT-3423, Issue #1370)</li>
    <li><I>Processors</I>. Fixed issue where CRC16C <code>LOAD</code>/<code>STOR</code> with <code>abs20</code> were not mapped correctly. (GT-3529, Issue #1518)</li>
    <li><I>Processors</I>. Fixed M68000 <code>MOVE USP,x</code> and <code>MOVE x,USP</code> opcodes. (GT-3594, Issue #1593)</li>
    <li><I>Processors</I>. Fixed the ARM/Thumb <code>TEQ</code> instruction pcode to be an XOR. (GP-23, Issue #1802)</li>
    <li><I>Processors</I>. Emulation was broken by a regression in version 9.1.2.  Emulation and Sleigh Pcodetests now work correctly. (GP-24, Issue #1579)</li>
    <li><I>Processors</I>. Fixed carry flag issue for 6502 <code>CMP</code>, <code>CPX</code>, and <code>CPY</code> instructions. (GP-34)</li>
    <li><I>Processors</I>. Corrected the SuperH high-order bit calculation for the <code>rotr</code> instruction. (GP-47)</li>
    <li><I>Processors</I>. Corrected ELF ARM relocation processing for type 3 (<code>R_ARM_REL32</code>) and added support for type 42 (<code>R_ARM_PREL31</code>). (GP-164, Issue #2261, #2276)</li>
    <li><I>Scripting</I>. Moved Jython cache directory out of <B>tmp</B>. (GP-36)</li>
    <li><I>Scripting</I>. Fixed a NoClassDefFoundError when compiling GhidraScript under JDK14. (GP-59, Issue #2152)</li>
    <li><I>Scripting</I>. Fixed issues with null result when searching for the script directory. (GP-103, Issue #2187)</li>
    <li><I>Scripting</I>. Fixed scripting issue where, if there were non-ASCII characters in the user path, Jython would not work. (GP-204, Issue #1890)</li>
    <li><I>Sleigh</I>. Corrected IndexOutOfBoundsException in SLEIGH when doing simple assignment in disassembly actions block. (GT-3382, Issue #745)</li>
    <li><I>Symbol Tree</I>. Fixed the Symbol Tree so that clicking an already-selected symbol node will still trigger a Listing navigation. (GT-3436, Issue #453)</li>
    <li><I>Symbol Tree</I>. Fixed the Symbol Tree to not continuously rebuild while performing Auto-analysis. (GT-3542)</li>
    <li><I>Version Tracking</I>. Fixed Version Tracking <B>Create Manual Match</B> action. (GT-3305, Issue #2215)</li>
    <li><I>Version Tracking</I>. Fixed a NullPointerException encountered when changing the Version Tracking options for the <B>Listing Code Comparison</B> when no data was loaded. (GT-3437, Issue #1143)</li>
    <li><I>Version Tracking</I>. Fixed Version Tracking exception triggered in the <B>Exact Functions Instructions Match</B> correlator encountered when the two functions being compared differed in their number of instructions. (GT-3438, Issue #1352)</li>
</ul>
</blockquote>

<H1 align="center">Ghidra 9.1.2 Change History (February 2020)</H1>
<blockquote><p><u><B>Bugs</B></u></p>
<ul>
    <li><I>Data Types</I>. Improved PDB composite reconstruction to attempt <code>pack(1)</code> alignment if default alignment fails. (GT-3401)</li>
    <li><I>Data Types</I>. Added missing support for multi-user merge of unions and structures containing bitfields or a trailing flexible array member. (GT-3479)</li>
    <li><I>Data Types</I>. Corrected structure editor save button enablement issue when editing bitfields within a non-packed structure. (GT-3519, Issue #1297)</li>
    <li><I>Disassembly</I>. Corrected potential infinite loop with disassembler caused by branch to self with invalid delay slot instruction. (GT-3511, Issue #1486)</li>
    <li><I>GUI</I>. Corrected processor manual display for Microsoft Windows users, which was not displaying processor manual and was, instead, rendering a blank page in web browser. (GT-3444)</li>
    <li><I>GUI:Bitfield Editor</I>. Added field comment support to composite bitfield editor. (GT-3410)</li>
    <li><I>Importer:Mach-O</I>. A Mach-O loader regression, in Ghidra 9.1.1, when laying down symbols at the correct location, has been fixed. (GT-3487, Issue #1446)</li>
    <li><I>Multi-User:Ghidra Server</I>. Corrected Ghidra Server remote interface errors that occur when running with Java 11.0.6 (and later) release, which would throw RemoteException <code>Method is not Remote</code> errors. (GT-3521, Issue #1440)</li>
    <li><I>PDB</I>. Corrected PDB XML generation for zero-length classes and structures and resolved various datatype dependency issues encountered during PDB Analysis. Changed line numbers from hex to decimal. (GT-3462, Issue #1410)</li>
    <li><I>Processors</I>. Corrected mnemonic for ARM thumb <code>RSB.w</code> instruction. (GT-3420, Issue #1365)</li>
    <li><I>Processors</I>. Corrected issue in M68000 with some move instructions not creating correct array assignments. (GT-3429, Issue #1394)</li>
    <li><I>Processors</I>. Updated x86 processor manual index file with latest Intel and AMD manuals. (GT-3489, Issue #1078)</li>
</ul>
</blockquote>

<H1 align="center">Ghidra 9.1.1 Change History (December 2019)</H1>
<blockquote><p><u><B>Improvements</B></u></p>
<ul>
    <li><I>Importer:Mach-O</I>. Improved import/load time of DYLD shared cache files. (GT-3261)</li>
    <li><I>Program API</I>. Cached the addresses that correspond to executable memory to improve analysis performance. (GT-3260)</li>
</ul>
</blockquote>

<blockquote><p><u><B>Bugs</B></u></p>
<ul>
    <li><I>Analysis</I>. Fixed a symbol name error that occurred in the Objective-C analyzer. (GT-3321, Issue #1200)</li>
    <li><I>Analysis</I>. Constant references are now computed correctly within functions in overlay spaces. (GT-3373)</li>
    <li><I>Build</I>. Corrected build of <B>DMG.jar</B> which was improperly built within Ghidra 9.1 release. (GT-3364)</li>
    <li><I>Decompiler</I>. Fixed bug causing <code>Pcode: XML comms: Badly formed address</code> errors when decompiling HCS12 <code>XGATE</code> code. (GT-3297)</li>
    <li><I>Decompiler</I>. Fixed <code>Array DataType must be Fixed length</code> exceptions related to function pointer data types. (GT-3309)</li>
    <li><I>Decompiler</I>. Fixed bug causing decompiler to drop statements, assigning string constants to global variables. (GT-3315)</li>
    <li><I>Decompiler</I>. Fixed issue with enum name strings causing <code>Low-level Error: XML error: syntax error</code> in the decompiler. (GT-3387, Issue #1329)</li>
    <li><I>GUI</I>. Fixed a potential ConcurrentModificationException in the interactive python interpreter. (GT-3280)</li>
    <li><I>Importer:PE</I>. Fixed an exception in the PeLoader that occurred when the size of the memory block for the headers is larger than the file size. (GT-3344, Issue #1266)</li>
    <li><I>Listing</I>. Fixed missing scroll bar in listing. (GT-3290)</li>
    <li><I>Listing</I>. Fixed issue that was causing a stack trace to be generated when contiguous addresses were cleared for a range greater than <code>Integer.MAX</code>. (GT-3357)</li>
    <li><I>Listing:References</I>. Corrected <B>Create Default Reference</B> action bug which did not handle composite/array data components properly. (GT-3371)</li>
    <li><I>Processors</I>. Corrected Sparc floating point instruction pcode implementation. (GT-3202)</li>
    <li><I>Processors</I>. Corrected the semantics of the PowerPC <code>e_cmpi</code> instruction. (GT-3228, Issue #1127)</li>
    <li><I>Processors</I>. Corrected bit generation for PowerPC instructions <code>se_bclri</code>, <code>se_bgeni</code>, <code>se_bseti</code>, and <code>se_btsti</code>. (GT-3232, Issue #967)</li>
    <li><I>Processors</I>. Corrected register definitions for x86 <code>RDRAND</code> instruction. (GT-3253, Issue #1169)</li>
    <li><I>Processors</I>. Corrected signed immediate calculation for some powerPC VLE offsets being incorrect. (GT-3254, Issue #1160)</li>
    <li><I>Processors</I>. Resolved issue with x86 escape opcodes preventing certain instruction patterns from decoding. (GT-3256)</li>
    <li><I>Processors</I>. Corrected bug in <code>XGATE</code> <code>LDH</code> instruction shifting out high bits. (GT-3268)</li>
    <li><I>Processors</I>. Corrected processing of <code>R_MIPS_REL32</code>, <code>R_X86_64_RELATIVE</code>, and <code>R_X86_64_RELATIVE64</code> ELF relocations affecting relocatable binaries which have non-zero section/segment load addresses. (GT-3349)</li>
</ul>
</blockquote>

<H1 align="center">Ghidra 9.1 Change History (October 2019)</H1>
<blockquote><p><u><B>New Features</B></u></p>
<ul>
    <li><I>Data Types</I>. Added bit-field support to Structure and Union editor.  An additional Bit-field Editor was also added for explicit bit-field placement within non-packed structures. (GT-559)</li>
    <li><I>Eclipse Integration</I>. Added new GhidraSleighEditor Eclipse plugin in the installation directory under Extensions/Eclipse. (GT-113)</li>
    <li><I>GUI</I>. Added method for turning off table sorting by control-clicking the only sorted table column. (GT-2763, Issue #87)</li>
    <li><I>GUI</I>. Hovering on an address will now show where the byte at that address came from in the imported file. (GT-3016, Issue #154)</li>
    <li><I>Importer:Mach-O</I>. Added new importer/loader for DYLD-shared cache files. (GT-2343)</li>
    <li><I>Memory</I>. Added new API to preserve imported program's original bytes and how they map to memory blocks. (GT-2845)</li>
    <li><I>Processors</I>. Implemented Intel MCS-96 processor module. (GT-2350)</li>
    <li><I>Processors</I>. Added SH1/2/2a sleigh processor specification. (GT-3029, Issue #715)</li>
    <li><I>Processors</I>. Added Tricore processor specification. (GT-3041, Issue #567)</li>
    <li><I>Processors</I>. Added HCS12X processor specification. (GT-3049)</li>
    <li><I>Processors</I>. Added HCS05 and HCS08 sleigh processor specifications. (GT-3050)</li>
    <li><I>Processors</I>. Added SH4 sleigh processor specification. (GT-3051, Issue #37)</li>
    <li><I>Processors</I>. Added MCS-48 processor specification. (GT-3058, Issue #638)</li>
    <li><I>Program API</I>. Added Bit-field support for structures and unions.
<B>Warning:</B> Version upgrade will be forced on all modified programs and data type archives that are open for update. (GT-557)</li>
    <li><I>Sleigh</I>. Added two new extension modules (SleighDevTools and GnuDisassembler) in support of processor module development.  Added support for pcode junit tests which utilize emulation of cross-compiled C  test code to verify sleigh pcode (i.e., instruction semantics).  The SleighDevTools extension provides the pcode test C source and associated build scripts, as well as external disassembler support for aiding in the validation of disassembled instruction syntax. (GT-3067)</li>
</ul>
</blockquote>

<blockquote><p><u><B>Improvements</B></u></p>
<ul>
    <li><I>Analysis</I>. Added example script, ResolveX86orX64LinuxSyscallsScript.java, for decompiling Linux system calls in x86 and x64.  Added syscall-related exercises to <B>Advanced</B> class. (GT-3113)</li>
    <li><I>Basic Infrastructure</I>. Made bash scripts more portable, allowing Ghidra to be launched on additional platforms. (GT-2742, Issue #347)</li>
    <li><I>Build</I>. Created a new Gradle task that automates some installation procedures defined in <B>DevGuide.md</B>. (GT-2897)</li>
    <li><I>Build</I>. The build now allows newer versions of Gradle to be used. (GT-3017, Issue #737)</li>
    <li><I>Data Types</I>. All DataType archives have been regenerated to support the new bit-field functionality. (GT-2878)</li>
    <li><I>Data Types</I>. CategoryPath now accepts forward slashes in its components. (GT-2961)</li>
    <li><I>Data Types</I>. Fixed Structure Editor bug that caused the <B>Data Type</B> field of a row to be edited after a successful name field edit. (GT-3109, Issue #703)</li>
    <li><I>Decompiler</I>. Most forms of unnecessary or redundant copy statements are now removed from the decompiler output. (GT-2839)</li>
    <li><I>Decompiler</I>. Added ability to double-click a Decompiler brace syntax token to navigate to the matching brace. (GT-2846)</li>
    <li><I>Decompiler</I>. Updated the Decompiler to navigate to the label of a <code>goto</code> statement when that label is double-clicked. (GT-2847)</li>
    <li><I>Decompiler</I>. Updated the Decompiler's <B>Copy</B> action to copy the symbol under the cursor when there is no selection. (GT-2914, Issue #411)</li>
    <li><I>Decompiler</I>. Fixed broken <B>External Navigation: Navigate to External Program</B> option found in <B>Edit -> Tool Options...</B>. (GT-2932)</li>
    <li><I>Decompiler</I>. The decompiler's logic for handling optimized division has been updated to recognize forms typically found in executables generated with more recent 64-bit compilers. (GT-2968, Issue #668)</li>
    <li><I>Decompiler</I>. Implemented call-fixup for x64 <code>__chkstk</code> function. (GT-3006, Issue #670, #671)</li>
    <li><I>Decompiler</I>. The decompiler simplifies many new sign-bit extraction forms used in optimized division and comparison expressions. (GT-3036)</li>
    <li><I>Decompiler</I>. Ghidra now supports protected mode addressing when analyzing 16-bit x86 programs. This is the default variant when analyzing NE format executables, but it can also be used for MZ (and other) formats. (GT-3090, Issue #98)</li>
    <li><I>Decompiler</I>. Added the <B>Show References to Address</B> and <B>Find References to <I>Symbol</I></B> actions to the Decompiler.  Added <B>Find Uses of <I>Field</I></B> action to the Structure Editor. (GT-3115, Issue #474, #542, #543)</li>
    <li><I>Decompiler</I>. Updated the Decompiler's <B>Edit Data Type</B> action to work on more fields. (GT-3116, Issue #275, #511)</li>
    <li><I>Decompiler</I>. Renaming a single parameter within the decompiler window no longer prevents the data types of parameters from floating. Retyping a single parameter locks the data type for that parameter but no longer prevents the data types of other parameters from floating. (GT-3162)</li>
    <li><I>Documentation</I>. Fixed typos and other errors in GitHub-related documentation. (GT-2748, Issue #345, #361, #370, #375, #398)</li>
    <li><I>Documentation</I>. Added documentation to the <B>DevGuide.md</B> on how to run unit/integration tests. (GT-3046, Issue #815, #832)</li>
    <li><I>DWARF</I>. Corrected DWARF analysis to handle binaries that are imported at non-default locations. (GT-2963, Issue #637)</li>
    <li><I>Emulator</I>. Added improved emulation support at the API level including a simplified API exposed via the EmulatorHelper class.  Sample GhidraScripts, which utilize this API, have been provided. (GT-3066)</li>
    <li><I>Function Graph</I>. Updated the Function Graph to show the current program selection when zoomed out. (GT-2735)</li>
    <li><I>Function Graph</I>. Added an option to the Function Graph to allow more complex edge routing that will go around non-incident vertices.   See the Tool Options for more information and to enable this feature. (GT-3019, Issue #811)</li>
    <li><I>Function Graph</I>. Fixed Function Graph edge layout bugs that caused some edges to get clipped by vertices. (GT-3161)</li>
    <li><I>GUI</I>. Added listener to Script Table Chooser Dialog that will get notified when the dialog closes. (GT-2216)</li>
    <li><I>GUI</I>. Fixed global Tool <B>auto-save</B> option so that it persists between Ghidra sessions. (GT-2818, Issue #231)</li>
    <li><I>GUI</I>. Added the <B>apple.laf.useScreenmenuBar</B> option to hoist the menu bar out of the window on macOS.  The option is off by default but can be activated in <B>support/launch.properties</B>. (GT-2859, Issue #562)</li>
    <li><I>GUI</I>. Updated the <B>Repeat Text Search</B>/<B>Repeat Memory Search</B> menu items to show the search dialog for long searches. (GT-2872, Issue #585)</li>
    <li><I>GUI</I>. Updated Structure Editor to allow user key bindings to work. (GT-2894, Issue #504)</li>
    <li><I>GUI</I>. Python interpreter key bindings for sending reset and interrupt commands are now configurable. (GT-2901, Issue #588)</li>
    <li><I>GUI</I>. Tweaked default graphic settings in <B>support/launch.properties</B> to support a wider range of displays out-of-the-box. (GT-2913, Issue #341)</li>
    <li><I>GUI</I>. Added the ability to assign key bindings to activate individual component providers. (GT-2925, Issue #539)</li>
    <li><I>GUI</I>. Fixed rendering issue in the Search Results table's <B>Preview</B> column. (GT-2942, Issue #550)</li>
    <li><I>GUI</I>. Updated the Function Signature Editor's <B>Data Type Chooser</B> dialog to allow for keyboard navigation. (GT-3110, Issue #636)</li>
    <li><I>GUI</I>. Fixed NullPointerException in the DB Viewer component. (GT-3163, Issue #1023)</li>
    <li><I>Importer</I>. Updated x86 16-bit processor binding for IDA. (GT-3004, Issue #771)</li>
    <li><I>Importer:ELF</I>. Improved ELF loader ability to cope with malformed headers including negative file offsets and missing section names. (GT-2933, Issue #35)</li>
    <li><I>Importer:PE</I>. PeLoader better accounts for section alignment when laying out memory blocks, allowing additional bytes from the file to be loaded into memory. (GT-2827, Issue #327, #418)</li>
    <li><I>Importer:PE</I>. Removed out-of-place call to demangler and laying down of types from PeLoader. This fix enables demangling and other analyzers to be applied correctly and in the proper order. (GT-2849)</li>
    <li><I>Importer:PE</I>. PeLoader now adds TLS callback functions as entry points. (GT-2898, Issue #102)</li>
    <li><I>Listing</I>. Updated Listing to support horizontal scrolling by holding the <B>Shift</B> key when using the mouse wheel. (GT-3105, Issue #451)</li>
    <li><I>Listing:References</I>. Created new <B>overriding</B> reference types, which improve and extend the ability to override calls, jumps, and callothers. (GT-2885)</li>
    <li><I>Multi-User</I>. Added a script to allow repository admins the ability to terminate multiple file checkouts belonging to an individual user on a shared project. (GT-2893)</li>
    <li><I>Multi-User:Ghidra Server</I>. Added additional Ghidra Server authentication modes including: Active Directory via Kerberos and JAAS.  The JAAS framework can facilitate use of LDAP, PAM, and other JAAS-supported extensions which utilize a login name and password. (GT-2658)</li>
    <li><I>Multi-User:Ghidra Server</I>. Changed Ghidra Server repositories storage to ignore file/folder names which start with a period.  This will impose a restriction on naming of Ghidra projects where they can no longer start with a period. (GT-3218)</li>
    <li><I>PDB</I>. Now using HTTPS for Microsoft symbol server URL. (GT-2819, Issue #369)</li>
    <li><I>PDB</I>. PDB processing can now store data types that contain forward slashes under a CategoryPath. (GT-2974, Issue #94, #182)</li>
    <li><I>PDB</I>. PDB Analyzer no longer automatically includes the PDB path specified in the program's PE header when searching for the PDB.  However, the filename in this path is considered during the search.  The analyzer's <B>Unsafe: Include PE PDB Path in PDB Search</B> option allows the user to revert to the original PDB search algorithm. (GT-3076, Issue #277)</li>
    <li><I>Processors</I>. Added new Task Monitor service to better handle user experience when there are delays in building languages. (GT-2376)</li>
    <li><I>Processors</I>. Corrected ARM/Thumb instruction parsing for Thumb <code>bl</code> and <code>add</code> instructions. (GT-2744, Issue #362)</li>
    <li><I>Processors</I>. Added AVR8 manual index file. (GT-2828, Issue #346)</li>
    <li><I>Processors</I>. Improved support for ARM on Windows. (GT-2880)</li>
    <li><I>Processors</I>. M68000 <code>LSL.W</code>, <code>ASL.B</code>, <code>LSL.B</code>, and <code>ASL.W</code> instructions now correctly set the <code>CF</code> flag. (GT-2907, Issue #619)</li>
    <li><I>Processors</I>. Updated x86 manual index files. (GT-2943, Issue #366)</li>
    <li><I>Processors</I>. Improved macro label-related error reporting in slaspec files. (GT-2995, Issue #522)</li>
    <li><I>Processors</I>. Added MIPS special <code>0x1f</code> patterns. (GT-3005, Issue #709)</li>
    <li><I>Processors</I>. Added proper updating of the <code>X</code> condition flag register for the M68000 processor <code>lsl</code> and <code>lsr</code> instructions. (GT-3137, Issue #983)</li>
    <li><I>Processors</I>. Implemented PowerPc VLE Interrupt Handler Efficiency Instructions. (GT-3143, Issue #935)</li>
    <li><I>Processors</I>. Ghidra now correctly models SPARC 64-bit <B>stack bias</B>. (GT-3201)</li>
    <li><I>Processors</I>. Updated AVR32 instruction manual index to latest version. (GT-712)</li>
    <li><I>Program API</I>. Added SHA256 hash to Program metadata and API. (GT-2753, Issue #331)</li>
    <li><I>Scripting</I>. Updated Script Table Chooser Dialog: to fix bug with tracking work items, to add new API methods for item removal and dialog closed notification, and to prevent the same item from being worked on more than once. (GT-2724, Issue #307)</li>
    <li><I>Scripting</I>. Fixed MultiInstructionMemReference Ghidra script to place the reference correctly on instructions with a delay slot. (GT-2906)</li>
    <li><I>Sleigh</I>. The sleigh compiler now reports line numbers for the <code><B>-n</B></code> NOP command line option. (GT-2905, Issue #561)</li>
    <li><I>Sleigh</I>. SLEIGH compiler now warns when building an operand in a constructor may unintentionally overwrite another operand. (GT-3085)</li>
    <li><I>Testing:Junits</I>. <code>test.gradle getLogFileUrl()</code> no longer searches user <B>.dir</B> for <B>log4j</B> properties file. (GT-2834, Issue #499)</li>
    <li><I>Testing:Junits</I>. Added new Gradle task to run integration tests and generate an HTML report. (GT-3060, Issue #870)</li>
    <li><I>Tool</I>. Fixed bug that caused an exported tool to exclude plugin configuration settings. (GT-3193, Issue #1065)</li>
</ul>
</blockquote>

<blockquote><p><u><B>Bugs</B></u></p>
<ul>
    <li><I>Analysis</I>. Fixed an exception in the EmbeddedMediaAnalyzer that occurred when media was discovered at the very end of the address space. (GT-2890)</li>
    <li><I>Analysis</I>. Recognition and disassembly of the <code>FMA</code>, <code>F16C</code>, and several missing <code>AVX</code> instructions have been added to the base x86 processor specification.  The pcode for these instructions is pseudo-op and not a full pcode implementation. (GT-3168)</li>
    <li><I>Basic Infrastructure</I>. Updated the apache-commons-lang3 library to version 3.9 which supports Java 11. (GT-2879)</li>
    <li><I>Basic Infrastructure</I>. Prevented Ghidra from launching with 32-bit Java installations. (GT-3146, Issue #882)</li>
    <li><I>Data Types</I>. Corrected string data default label generation when defined within uninitialized memory, which will now render as <code>STRING_<I>address</I></code>. (GT-2715, Issue #272)</li>
    <li><I>Data Types</I>. Improved ASCII string data handling for processors with a char size greater than one (1). (GT-2842)</li>
    <li><I>Data Types</I>. Changed BooleanDataType to extend AbstractIntegerDataType including support as a bit-field. (GT-3170)</li>
    <li><I>DbViewer</I>. Corrected concurrent modification issue within DbViewer resulting in NullPointerException. (GT-3192, Issue #1076)</li>
    <li><I>Decompiler</I>. Fixed aliasing issue where the decompiler would sometimes drop initialization or other code writing to the stack. (GT-2369)</li>
    <li><I>Decompiler</I>. Fixed bug causing the decompiler to incorrectly omit the display of infinite loops when they contained switch statements. (GT-2852, Issue #443)</li>
    <li><I>Decompiler</I>. Integer extension casts are no longer printed in the decompiler if the extension is implied. (GT-2857)</li>
    <li><I>Decompiler</I>. Improved handling of overlay spaces. In particular, the decompiler is now able to handle references into overlays defined on the OTHER space. Added SLEIGH version numbers. (GT-2873)</li>
    <li><I>Decompiler</I>. Updated the Decompiler to place the cursor on the function signature when a function is decompiled. (GT-2882)</li>
    <li><I>Decompiler</I>. Fixed a common source of <code>Data type does not fit</code> errors when using the <B>Retype</B> actions in the decompiler. (GT-2956)</li>
    <li><I>Decompiler</I>. Fixed <code>equals()</code> method in Varnode AST. (GT-2959, Issue #677)</li>
    <li><I>Decompiler</I>. Users can no longer rename undefined functions from the decompiler. (GT-3043, Issue #753)</li>
    <li><I>Decompiler</I>. Fixed a bug that did not allow the prototype for a specific CALL to an external function to be overridden in the decompiler. (GT-3145)</li>
    <li><I>Decompiler</I>. Restricted <B>Auto Fill in Structure</B> command to operate only on pointer variables. (GT-3182)</li>
    <li><I>Decompiler</I>. Fixed bug in the analysis of stack variables for SPARC, which caused extraneous local variables and missed stack parameters in the decompiler. (GT-3200)</li>
    <li><I>Decompiler</I>. Fixed one source of <code>Type propagation algorithm not settling</code> warnings in the decompiler. (GT-3213, Issue #839)</li>
    <li><I>Decompiler:Java</I>. Updated Decompiler's hovers to show preview for data types on variables and return types. (GT-2629)</li>
    <li><I>Decompiler:Java</I>. Fixed error involving decompilation of certain <code>invokedynamic</code> instructions in JVM class files.  Made numerous minor improvements to decompilation of JVM bytecode. (GT-2757, Issue #287)</li>
    <li><I>Demangler</I>. Fixed a NullPointerException in DemangledFunctionPointer. (GT-2948, Issue #609)</li>
    <li><I>DWARF</I>. Empty DWARF compilation unit sections will now be ignored. (GT-2939, Issue #690)</li>
    <li><I>Exporter</I>. Negative memory references in <B>idaxml.py</B> no longer cause errors. (GT-2696, Issue #213, #885)</li>
    <li><I>Exporter</I>. Fixed Intel Hex Exporter to not ignore the <B>Address Space</B> option value. (GT-2749)</li>
    <li><I>Exporter</I>. Fixed cancellation behavior of the C/C++ exporter. (GT-2881, Issue #591)</li>
    <li><I>File Formats</I>. Fixed an out-of-memory error in the CPIO file system. (GT-2912)</li>
    <li><I>File Formats</I>. DmgClientFileSystem no longer falsely matches zlib compressed files. (GT-2926, Issue #583)</li>
    <li><I>File System Browser</I>. Fixed NullPointerException when clicking <B>Get Info</B> on a directory in a zip file in the file system browser when the element was a directory that did not have a corresponding entry in the zip file. Changed the <B>Get Info</B> action to show information about both the highlighted file and any file system mounted from that file. (GT-2758)</li>
    <li><I>File System Browser</I>. Fixed dialog stacking problem in File System Browser when double-clicking a container file to open the filesystem inside it. (GT-2764)</li>
    <li><I>File System Browser</I>. Reduced the disk usage of the DYLD-shared cache file system. (GT-2887)</li>
    <li><I>Function Graph</I>. Fixed exception encountered when a Function Graph's entry node was put into a group node. (GT-3074)</li>
    <li><I>Function Graph</I>. Fixed Function Graph edge routing bug that sometimes caused edge flowing upward to route unexpectedly. (GT-3153, Issue #994)</li>
    <li><I>GUI</I>. Fixed stack trace when deleting large memory block that is in its own address space. (GT-2699)</li>
    <li><I>GUI</I>. Changed Data Type Preview to allow adding string data types. (GT-2832)</li>
    <li><I>GUI</I>. Fixed display of operand scalar values in tooltip popup of Decompiler and Listing windows. (GT-2836, Issue #120)</li>
    <li><I>GUI</I>. Fixed bug in Data Type Preview that caused a rendering error in Structures as primitive types were deleted. (GT-2844)</li>
    <li><I>GUI</I>. Fixed Symbol Tree ClassCastException that happened when clicking a node while the tree was still loading. (GT-2870, Issue #96)</li>
    <li><I>GUI</I>. Fixed bug that prevented the XRef's <B>Ref Type</B> column from sorting correctly. (GT-2892)</li>
    <li><I>GUI</I>. Fixed Listing bug so that the cursor gets restored to the previous location on Ghidra startup. (GT-2927, Issue #505)</li>
    <li><I>GUI</I>. Updated Edit Function Signature dialog to have focus in the signature field when first opened.  Also added undo/redo support. (GT-2947, Issue #635)</li>
    <li><I>GUI</I>. Fixed exception in the References Editor encountered when closing the editor with an active edit in the table. (GT-2951)</li>
    <li><I>GUI</I>. Fixed bug where the Ghidra menu mnemonic was not being set by the ampersand ('&') character in the last field of the menu path. (GT-2954)</li>
    <li><I>GUI</I>. Updated the Component Provider's <B>Close</B> button to allow for key bindings. (GT-2971, Issue #533)</li>
    <li><I>GUI</I>. Fixed tool navigation button enablement when using snapshot windows. (GT-2973)</li>
    <li><I>GUI</I>. Corrected Function Editor issue where parsed signature text resulted in incorrect type sizes which impacted custom storage selection.  Also added support for parsing signatures which reference types from an open datatype archive. (GT-3059)</li>
    <li><I>GUI</I>. Updated resizing in <B>Select Bytes</B> dialog. (GT-3072)</li>
    <li><I>GUI</I>. Fixed bug where listing would jump to random location when opening or closing a large structure or array. (GT-3088)</li>
    <li><I>GUI</I>. Fixed bug that caused some tables (e.g., the Symbol Table) to sort twice during their initial loading of data. (GT-3142)</li>
    <li><I>GUI</I>. Drag-and-Drop bug causing incorrect drop highlighting has been fixed. (GT-3219, Issue #1093)</li>
    <li><I>Help</I>. Fixed NullPointerException when navigating the Help UI. (GT-2830, Issue #493)</li>
    <li><I>Importer</I>. Fixed issues in the MapLoader that prevented <B>.map</B> files from being added to an existing program. (GT-2972, Issue #762)</li>
    <li><I>Importer</I>. For batch import, fixed issue where last character of directory name was truncated on Windows workstations. (GT-3012, Issue #797)</li>
    <li><I>Importer</I>. Fixed a bug in how the NE importer creates External Function symbols for the procedures it imports, allowing the decompiler to properly access any available information. (GT-3140, Issue #770)</li>
    <li><I>Importer</I>. Fixed a bug that prevented some old-style Windows executables from getting loaded by the MzLoader. (GT-3180, Issue #1054)</li>
    <li><I>Importer:ELF</I>. Added ELF relocation handler for <code>R_AARCH64_JUMP26</code>. (GT-2999, Issue #775)</li>
    <li><I>Importer:ELF</I>. Improved ELF MIPS support for GP-relative relocations encountered in PIC compiled binaries.  Also added support for <code>R_MIPS_RPREL32</code> relocation. (GT-3026, Issue #764)</li>
    <li><I>Importer:ELF</I>. ELF x86-64 relocations <code>R_X86_64_GOT32</code>, <code>R_X86_64_PLT32</code>, <code>R_X86_64_SIZE32</code>, <code>R_X86_64_SIZE64</code>, and <code>R_X86_64_GOTPC32</code> have been fixed to relocate correctly. Additional ELF x86-64 relocations, found mostly in unlinked <B>.o</B> files, have been added. (GT-3089, Issue #910)</li>
    <li><I>Importer:PE</I>. Fixed a problem in the PeLoader that would result in section names being incorrectly used as primary symbols.  This could result in function names being wrong. (GT-3195, Issue #761, #1051)</li>
    <li><I>Listing</I>. Fixed potential infinite loop when editing long comments. (GT-2824, Issue #437)</li>
    <li><I>Listing</I>. Fixed potential ClassCastException in Listing comments. (GT-3023)</li>
    <li><I>Listing</I>. Cursor in the listing now stays in the proper column after editing a field. (GT-3045, Issue #702)</li>
    <li><I>Listing</I>. Fixed a problem with register highlighting that could occur on certain register/sub-register combinations. (GT-3071, Issue #810)</li>
    <li><I>Multi-User</I>. Corrected terminate checkout from viewed checkout list which was always terminating first row range based upon number of selected rows and not the actual selected rows. (GT-2903)</li>
    <li><I>Multi-User</I>. Corrected ability for user to cancel checkin/checkout to Ghidra Server. (GT-3208)</li>
    <li><I>Multi-User:Ghidra Server</I>. Added proper Ghidra Server interface binding with new <code><B>-i</B></code> option.  Corrected <code><B>-ip</B></code> option to strictly convey remote access hostname to clients.  The updated server will only accept connections from Ghidra 9.1 and later clients due to the registry port now employing TLS. (GT-2685, Issue #101, #645)</li>
    <li><I>Multi-User:Ghidra Server</I>. Fixed argument-passing bug in svrAdmin script. (GT-3082, Issue #907)</li>
    <li><I>Multi-User:Merge</I>. Corrected merge problem affecting modified Function Definition datatypes which could result in a NullPointerException. (GT-2922)</li>
    <li><I>PDB</I>. Added <code>char16_t</code> and <code>char32_t</code> to PDB <code>BASIC_TYPE_STRINGS</code>. (GT-2952, Issue #685)</li>
    <li><I>PDB</I>. Addressed memory leaks and string handling issues in <B>pdb.exe</B>. (GT-2975, Issue #674, #597, #598, #599, #600)</li>
    <li><I>PDB</I>. Can now recover stack variables from more recent Visual Studio version PDBs. (GT-3014)</li>
    <li><I>PDB</I>. Fixed PDB validation logic, which caused a more severe error message to be created, masking the real issue. (GT-3209, Issue #198, #1024)</li>
    <li><I>Processors</I>. Utilized <code>FLOAT_NEG</code> pcodeop to simplify PowerPC <code>fneg</code> instructions. (GT-2781, Issue #387)</li>
    <li><I>Processors</I>. Added 6502 <code>I</code> status bit save and restore. (GT-2826, Issue #469)</li>
    <li><I>Processors</I>. Corrected alternate register definitions in z80 processor. (GT-2876, Issue #520)</li>
    <li><I>Processors</I>. Reviewed all processor modules for GhidraSleighEditor syntax errors. (GT-2902)</li>
    <li><I>Processors</I>. Added support for <code>RD</code>, <code>WR</code>, <code>FS</code>, and <code>GSBASE</code> instructions in x86. (GT-2940, Issue #554, #555)</li>
    <li><I>Processors</I>. Added fixes for sign extension of <code>ADD</code>, <code>AND</code>, <code>CMP</code>, and <code>SUB</code> instructions on x86-64bit. (GT-2955, Issue #881)</li>
    <li><I>Processors</I>. Updated PIC-30 division pcode to correct decompilation issue. (GT-3008)</li>
    <li><I>Processors</I>. Fixed x86 <code>AAM</code> instruction. (GT-3015)</li>
    <li><I>Processors</I>. Corrected x86 decode of <code>MOVBE</code> instruction. (GT-3039, Issue #822)</li>
    <li><I>Processors</I>. Corrected M68000 <code>mov3q</code> instruction decode and semantics. (GT-3080, Issue #905)</li>
    <li><I>Processors</I>. The JVM instruction <code>I2D</code> now correctly pushes an 8-byte double on the stack. (GT-3081)</li>
    <li><I>Processors</I>. Fixed problem displaying processor manuals in Windows Firefox. (GT-3084)</li>
    <li><I>Processors</I>. Encoding of <code>MOV</code> into debug registers has been relaxed. (GT-3117)</li>
    <li><I>Processors</I>. Corrected behavior of PowerPC <code>vectorPermute</code> pcodeop for emulation. (GT-3148)</li>
    <li><I>Processors</I>. Corrected MIPS relocation computation for <code>R_MIPS_26</code>, <code>R_MIPS16_26</code>, and <code>R_MICROMIPS_26_S1</code>. (GT-3154, Issue #1001)</li>
    <li><I>Processors</I>. Corrected the bit patterns for PowerPC VLE <code>rlwimi</code> and <code>rlwinm</code> instructions. (GT-3159, Issue #752)</li>
    <li><I>Processors</I>. Corrected instruction semantics for AARCH64 <code>BLR</code> instruction. (GT-3191)</li>
    <li><I>Processors</I>. Corrected fall-through override semantics for cases where pcode simply drops into the next address. (GT-3196, Issue #1083)</li>
    <li><I>Processors</I>. Corrected the semantics of the PowerPC <code>se_bmaski</code> instruction. (GT-3230, Issue #1123)</li>
    <li><I>Program API</I>. Corrected parameter storage which failed to properly refresh after undo/redo. (GT-3130, Issue #960)</li>
    <li><I>Program API</I>. Corrected function parameter ordinal numbering when more than one auto-parameter is present. (GT-3214)</li>
    <li><I>Project Manager</I>. Fixed a problem with creating Ghidra projects in Windows root directories (e.g., Z:\). (GT-2585)</li>
    <li><I>Project Manager</I>. Fixed a path-traversal vulnerability that could occur when restoring a malicious project archive. (GT-3001, Issue #789)</li>
    <li><I>Scripting</I>. <code>GhidraScript.askDomainFile()</code> now correctly throws a CancelledException when the cancel button is clicked. (GT-2841)</li>
    <li><I>Scripting</I>. Removed deprecated scripting methods older than 5 releases. (GT-2949)</li>
    <li><I>Security</I>. Removed use of nonsecure XMLEncoder/XMLDecoder from Ghidra code base. (GT-3198, Issue #1090)</li>
    <li><I>Sleigh</I>. Corrected Sleigh compiler bug which performed improper bounds checking for named register offset specification when space wordsize is not one (1). (GT-3034, Issue #831)</li>
    <li><I>Testing:CUnits</I>. Fixed error logging in pcodetest for reporting an error when running a compile command. (GT-3199, Issue #1089)</li>
    <li><I>Version Tracking</I>. Fixed NullPointerException in Version Tracking hashing algorithm. (GT-2976)</li>
</ul>
</blockquote>

<H1 align="center">Ghidra 9.0.4 Change History (May 2019)</H1>
<blockquote><p><u><B>Bugs</B></u></p>
<ul>
    <li><I>Multi-User:Ghidra Server</I>. Corrected severe script error in svrAdmin.bat introduced with 9.0.3 build. (GT-2874)</li>
    <li><I>GUI</I>. Restored the default 'p' key binding for creating pointers within the listing display. (GT-2854)</li>
</ul>
</blockquote>

<H1 align="center">Ghidra 9.0.3 Change History (April 2019)</H1>
<blockquote><p><u><B>New Features</B></u></p>
<ul>
    <li><I>GUI</I>. Function tags are now viewable from Functions Window table using new column. (GT-2114)</li>
</ul>
</blockquote>

<blockquote><p><u><B>Improvements</B></u></p>
<ul>
    <li><I>Decompiler</I>. Improved modeling of CFG on Windows 10. (GT-2755, Issue #340)</li>
    <li><I>Patcher</I>. Renamed patch directory to <install dir>/Ghidra/patch and added README.txt that explains how the patch directory is used. (GT-2734)</li>
    <li><I>Search</I>. Updated the Decompiler Data Type Finder to find references inside of nested array access in a line of Decompiler C output. (GT-2756, Issue #416)</li>
    <li><I>Sleigh</I>. Improved error reporting for SLEIGH compiler. (GT-2820, Issue #364)</li>
</ul>
</blockquote>

<blockquote><p><u><B>Bugs</B></u></p>
<ul>
    <li><I>Analysis</I>. Code that checks for thunks no longer throws an exception if the PC is not set for the processor. (GT-2730)</li>
    <li><I>Analysis</I>. Made a fix to enable Apply button when changing tool options. (GT-2801, Issue #40)</li>
    <li><I>Data Types</I>. Fixed concurrent modification exception when replacing one datatype for another that results in some other datatype being renamed. (GT-2736)</li>
    <li><I>Decompiler</I>. Fixed dynamic variables and equates in 16-bit x86 programs. (GT-2745, Issue #336)</li>
    <li><I>Decompiler:Java</I>. Fixed DEX decompilation regression issue. (GT-2743, Issue #350)</li>
    <li><I>Eclipse Integration</I>. Fixed exception in Eclipse GhidraDev plugin that occurred when performing certain actions on a Ghidra project that was imported from a previously exported Archive File. (GT-2721, Issues #283, #383)</li>
    <li><I>GUI</I>. Improved documentation on how to deal with HiDPI monitor issues in Linux. In the <I>&lt;ghidra_installation&gt;</I>/support/launch.properties file, change VMARGS=-Dsun.java2d.xrender from false to true.</li> 
    <li><I>Importer</I>. Fixed an exception that occurred when batch importing APK files. (GT-2767, Issue #426)</li>
    <li><I>Multi-User:Ghidra Server</I>. Restored ability to execute svrAdmin script in development mode. (GT-2740) </li>
    <li><I>Processors</I>. The 6502 Zero page indexed addressing has been corrected to only access the Zero page. (GT-2759, Issue #201)</li>
    <li><I>Processors</I>. The M68000 BCD arithmetic instructions now have pcode semantics that allow disassembly to continue. (GT-2807, Issue #227)</li>
    <li><I>Search</I>. Fixed NullPointerException in Decompiler Data Type Reference Finder. (GT-2754, Issue #407)</li>
</ul>
</blockquote>

<H1 align="center">Ghidra 9.0.2 Change History (April 2019)</H1>
<blockquote><p><u><B>Bugs</B></u></p>
<ul>
    <li><I>Analysis</I>. Constant reference analysis boundary controls for speculative references has been fixed. Speculative references are references created from computed constants passed as parameters, stored to a location, or from indexed offsets from a register. (GT-2723, Issue #228)</li>
    <li><I>Decompiler</I>. Fixed Decompiler handling of Function Definition data types. (GT-2704, Issue #247)</li>
    <li><I>Decompiler</I>. Fixed rendering bug in the Decompiler when the "Find" dialog is closed. (GT-2716, Issue #282)</li>
    <li><I>Decompiler</I>. Fixed "Free Varnode" exception in RuleConditionalMove. (GT-2726, Issue #294)</li>
    <li><I>Diff</I>. Fixed exceptions that can occur in the Diff View for programs with overlays. (GT-2706)</li>
    <li><I>Documentation</I>. Corrected the spelling of "listener" throughout the source code. (GT-2702, Issue #235)</li>
    <li><I>Exporter</I>. Exporting a selection as Intel Hex will now allow a selection of any length. Previously this was restricted to multiples of 16 bytes. (GT-2703, Issue #260)</li>
    <li><I>GUI</I>. Fixed exception that occurs after disabling MyProgramChangesDisplayPlugin. (GT-2712)</li>
    <li><I>GUI</I>. Updated the "Open Program" dialog to disallow file drop operations. (GT-2705, Issue #252)</li>
    <li><I>Multi-User:Ghidra Server</I>. Corrected bug introduced into ghidraSvr.bat which could prevent Ghidra Server startup. (GT-2717, Issue #279)</li>
    <li><I>Processors</I>. The ARM Thumb CMP.W and LSL instructions have been changed to correctly decode. There are still issues to work out with Unpredictable execution when Rd is the PC. (GT-2722, Issue #280)</li>
    <li><I>Scripting</I>. MultiInstructionMemReference script has been corrected to consider input and output registers when placing a reference on an instruction. (GT-2723)</li>
</ul>
</blockquote>

<blockquote><p><u><B>Security</B></u></p>
<ul>
    <li><I>Basic Infrastructure</I>. Added a property to support/launch.properties to prevent log4j from using jansi.dll on Windows. (GT-2725, Issue #286)</li>
</ul>
</blockquote>

<H1 align="center">Ghidra 9.0.1 Change History (March 2019)</H1>
<blockquote><p><u><B>New Features</B></u></p>
<ul>
    <li><I>Scripting</I>. Created ShowEquatesInSelectionScript to show all equates within the current selection. (GT-2651, Issue #111)</li>
</ul>
</blockquote>

<blockquote><p><u><B>Improvements</B></u></p>
<ul>
    <li><I>Basic Infrastructure</I>. Updated commons-compress library to version 1.18. (GT-2657, Issue #171)</li>
    <li><I>Eclipse Integration</I>. Ghidra now connects to the Eclipse GhidraDev plugin on 127.0.0.1 rather than localhost. (GT-2691)</li>
    <li><I>GUI</I>. Turned on font anti-aliasing by default for Linux. (GT-2674, Issue #212)</li>
    <li><I>GUI</I>. Fixed Options Dialog slow scrolling speed. (GT-2679, Issue #27)</li>
    <li><I>Importer:ELF</I>. Corrected bug in ELF loader which can improperly process the GOT, PLT and relocations when multiple symbol tables exist within the ELF binary. (GT-2646, Issue #52)</li>
    <li><I>Multi-User:Ghidra Server</I>. Corrected the Ghidra Server service wrapper (YAJSW) configuration for Mac OS X to prevent a startup timeout condition which could occur. (GT-2637)</li>
    <li><I>Processors</I>. Added ARM/Thumb SRS instruction decodes for undefined modes. (GT-2676, Issue #216)</li>
</ul>
</blockquote>

<blockquote><p><u><B>Bugs</B></u></p>
<ul>
    <li><I>API</I>. Fixed equals method on Varnode class. (GT-2648, Issue #97)</li>
    <li><I>API</I>. Fixed a bug in MaskImpl.complementMask(). (GT-2694, Issue #187)</li>
    <li><I>Basic Infrastructure</I>. Fixed special character handling in idaxml.py. (GT-2669, Issue #75)</li>
    <li><I>Basic Infrastructure</I>. Ghidra now forces the locale to en_US by default. Only the en_US is currently supported. This fixes certain unexpected exceptions. (GT-2680, Issue #209)</li>
    <li><I>Diff</I>. Fixed exception occasionally encountered when starting a Diff session. (GT-2672, Issue #211)</li>
    <li><I>Documentation</I>. Fixed javadoc search box redirecting to broken links. (GT-2655, Issue #129)</li>
    <li><I>Function Graph</I>. Fixed Function Graph exception when generating tooltip. (GT-2650, Issue #65)</li>
    <li><I>GUI</I>. Updated window placement to keep windows on screen. (GT-1516, Issue #41)</li>
    <li><I>GUI</I>. Add/Edit References dialog now restricts users to creating refs in valid memory address spaces. (GT-2638)</li>
    <li><I>GUI</I>. Fixed exception when exiting Ghidra while a table is being edited. (GT-2642, Issue #51)</li>
    <li><I>GUI</I>. Fixed some touchpad scrolling issues. (GT-2647, Issue #2)</li>
    <li><I>GUI</I>. Fixed stack trace in the Data Type Manager's tooltip generation. (GT-2656, Issue #133)</li>
    <li><I>GUI</I>. User key binding settings for the Recently Used and Define Pointer actions no longer lost after re-launching tool. (GT-2659, Issue #152)</li>
    <li><I>GUI</I>. Toolbar buttons now respond to fast clicking. (GT-2689)</li>
    <li><I>Importer:Mach-O</I>. The Mach-O loader can now find import libraries found in Universal Binary files. (GT-2663, Issue #136)</li>
    <li><I>Importer:PE</I>. The PeLoader now correctly parses the GuardCFFunctionTable when table entries are more than 4 bytes each. (GT-2671, Issue #220)</li>
    <li><I>Multi-User:Ghidra Server</I>. Removed support for native OS authentication from Ghidra Server (removed modes -a2 and -a3) due to incompatibility with newer OS releases including Windows 10 and Windows Server 2016. Re-introduction of this will be considered for a future release. (GT-2653)</li>
    <li><I>PDB</I>. Corrected NullPointerException when processing PDB files. (GT-2673, Issues #138, #188)</li>
    <li><I>Processors</I>. Added missing PowerPC VLE conditional branch instructions: e_bdnz and e_bdz. (GT-2652, Issue #103)</li>
    <li><I>Processors</I>. Fixed instruction semantics for several instructions and added Control Flow Enforcement, NOP variants, CMP variants, UD1, and prefixed call instructions to X86 processor specification. (GT-2660, Issues #22, #53, #158, #157)</li>
    <li><I>Processors</I>. The M68000 MOVE instruction now correctly sets the CF and VF flags. (GT-2661, Issue #163)</li>
    <li><I>Processors</I>. Added four missing MOVEM instruction variants to the M68000 processor. (GT-2675, Issue  #219)</li>
    <li><I>Processors</I>. An incorrect usage of X instead of Y in indexed mode for the 6502 has been corrected. (GT-2677, Issue #201)</li>
    <li><I>Processors</I>. PPC VLE now disassembles base PPC instructions that are valid in VLE mode. (GT-2681, Issue #127)</li>
    <li><I>Processors</I>. Added support for ARM Thumb half BL instruction on processor variants prior to v6. (GT-2684, Issue #39)</li>
    <li><I>Scripting</I>. Fixed a bug in ImportSymbolsScript.py that prevented it from running. (GT-2668, Issue #170)</li>
</ul>
</blockquote>

<blockquote><p><u><B>Security</B></u></p>
<ul>
    <li><I>Basic Infrastructure</I>. Running Ghidra in debug mode no longer opens remotely accessible ports by default. (GT-2641, Issue #6)</li>
    <li><I>GUI</I>. The Defined Strings plugin no longer renders HTML in its table. (GT-2686, Issue #45)</li>
    <li><I>Project Manager</I>. Fixed an XXE vulnerability affecting projects and many other saved components. (GT-2643, Issue #71)</li>
</ul>
</blockquote>

</BODY>
</HTML>

